一般にサーバーからクライアントに返されるデータは制限する方が望ましいこと、また C1DataSource|tag=C1DataSource_Class では FilterDescriptor コレクションエディタを使用してこれを簡単に実行できることを既に説明しました。次に、サーバー側のフィルタ処理を実行する手段をエンドユーザーに提供する方法について説明します。
他の GUI コントロールでもかまいませんが、たとえば、ユーザーがコンボボックスから Product Category を選択し、それによってサーバーから新しいデータが DataGrid にロードされるとします。
サーバー側のフィルタ処理を実装するには、次の手順に従います。
Visual Basic |
コードのコピー
|
---|---|
Private Sub comboBox1_SelectionChanged(sender As System.Object, e As System.Windows.Controls.SelectionChangedEventArgs) c1DataSource1.ViewSources("Products").FilterDescriptors(0).Value = CType(comboBox1.SelectedValue, Category).CategoryID c1DataSource1.ViewSources("Products").Load() End Sub |
C# |
コードのコピー
|
---|---|
private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e) { c1DataSource1.ViewSources["Products"].FilterDescriptors[0].Value = ((Category)comboBox1.SelectedItem).CategoryID; c1DataSource1.ViewSources["Products"].Load(); } |