方法 : 動的データでユーザー設定の [列] を使用してデータをフィルタします。

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

ASP.NET ダイナミック データ ページのマークアップを使用してユーザーをテーブルの行のフィルタのカスタム列の値を入力できる UI を提供することができます。動的なデータは、列の種類に基づいて UI を作成するためのフィルタ テンプレートを推測します。既定では BooleanBooleanBoolean および外部キー列を使用してフィルタ処理します。

カスタム フィルタを構成するには、次の手順が必要です。

  1. DynamicFilter DynamicFilterDynamicFilter コントロールを使用してによるフィルタ処理テーブルの行を定義します。テーブルの行のフィルタを実行できる、UI を作成することができます。

  2. QueryExtender QueryExtenderQueryExtender コントロールを使用してによる情報をフィルタ処理のデータ ソースを定義します。これによりフィルタ情報をページのデータ ソース コントロールに渡すことができます。

  3. これによりデータおよびデータベース クエリの詳細、データ ソース コントロールの知識をしなくてもの簡単なページのマークアップによるフィルタ処理を実行できます。

  4. 複数の DynamicFilterDynamicFilterDynamicFilter コントロールは複数の条件に基づいてフィルタを作成するページに追加できます。

テーブルの行のカスタム フィルタを実装するために続く Dynamic Data 手順を次の図に示します。

動的データ テーブルの行の要素をフィルタ

  1. その DynamicFilterDynamicFilterDynamicFilter コントロールは、 QueryExtenderQueryExtenderQueryExtender コントロールに、ユーザーの選択した値に合格します。

  2. 使用 QueryExtenderQueryExtenderQueryExtender して、値を情報のフィルタ クエリを作成します。この情報、データ ソース コントロールを渡します。

  3. データ ソース コントロールはフィルタ クエリ情報をデータ ソース プロバイダを渡します。

  4. データ ソース プロバイダは、データベースにクエリを渡します。

  5. データベースのフィルタ選択されたテーブル行を返します。

  6. データ ソース プロバイダは、データ ソース コントロールにこのデータを送り返します。

  7. このコントロールは、最後に表示するため、データ バインド コントロールをフィルタ処理されたテーブルの行を渡します。

テーブルの行のフィルタを定義するには

  1. Visual Studio 2010 または Visual Web Developer 2010 Express、Dynamic Data Web サイト、内で作成するか、ASP.NET Web ページを開きます。 手順は、データ ソース コントロール データベースにアクセスして、テーブルを表示する関連、データ バインド コントロールが存在する前提にしています。 

  2. データ バインド コントロールの前に、マークアップで、ページに、DynamicFilterDynamicFilterDynamicFilter コントロール追加します。

  3. テーブルから行をフィルタを使用している列の名前に DataFieldDataFieldDataField コントロールの DynamicFilterDynamicFilterDynamicFilter プロパティを設定します。

    次の例、データをフィルタ処理に使用する列の名前を指定する DynamicFilterDynamicFilterDynamicFilter コントロールのマークアップに示します。

    <asp:DynamicFilter ID="CategoryFilterID" 
        DataField="ProductCategory" runat="server"/>
    

    動的なデータが推測フィルタ テンプレートを使用して、列の種類に基づいています。それはスロー、InvalidOperationExceptionInvalidOperationExceptionInvalidOperationException 列のデータ型が、関連付けられている既定のフィルタ テンプレートを持たない場合します。

データ ソース フィルタ情報を定義するには

  1. QueryExtender QueryExtenderQueryExtender コントロールをページに追加します。

  2. 拡張する、データ ソース コントロールの ID には、TargetControlIDTargetControlIDTargetControlID コントロールの QueryExtenderQueryExtenderQueryExtender プロパティを設定します。

    次の例、QueryExtenderQueryExtenderQueryExtender というコントロールを拡張するよう構成されている GridDataSourceGridDataSource コントロールのマークアップに示します。

    <asp:QueryExtender ID="QueryExtenderID" 
        TargetControlID="GridDataSource" runat="server"/>
    </asp:QueryExtender>
    
  3. DynamicFilterExpression DynamicFilterExpressionDynamicFilterExpression コントロールの子として、 QueryExtenderQueryExtenderQueryExtender オブジェクトを追加します。

  4. ControlID ControlIDControlID コントロールの ID には、 DynamicFilterExpressionDynamicFilterExpressionDynamicFilterExpression コントロールの DynamicFilterDynamicFilterDynamicFilter プロパティを設定します。

    次の例、データベースのクエリに使用するフィルタを含む QueryExtenderQueryExtenderQueryExtender コントロールのマークアップに示します。

    <asp:QueryExtender ID="QueryExtenderID" 
        TargetControlID="GridDataSource" runat="server">
        <asp:DynamicFilterExpression ControlID="CategoryFilterID"/> 
    </asp:QueryExtender>
    

使用例

ForeignKey.ascx フィルタ テンプレートを使用して DropDownListDropDownListDropDownList コントロールの"商品"外部キー列 ProductCategory を作成する例を次に示します。ユーザーがこのコントロールから値を選択] の例行だけが表示"商品"テーブルに値を含む。

コードのコンパイル方法

この例には、次が必要です。

参照

処理手順

方法 : 動的データで自動列を使用してデータをフィルタします。

方法 : 動的データで親 Table から値を使用してテーブルの行をフィルタします。

参照

DynamicFilter Web サーバー コントロール宣言の構文

QueryExtender Web サーバー コントロール宣言の構文