Share via


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

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

ASP.NET 動的データをテーブルの行の自動フィルタを有効にするページのマークアップを使用し、行のフィルタの値を入力できる UI を示します。

動的なデータは、列の種類に基づいて UI を作成するためのフィルタ テンプレートを推測します。既定では BooleanBooleanBoolean および外部キー列を使用してフィルタ処理します。

このトピックでは自動テーブルの行に次の手順によるフィルタ処理を実行する方法を示します。

  1. テーブルの行のフィルタを定義します。QueryableFilterRepeaterQueryableFilterRepeaterQueryableFilterRepeater コントロールを追加し、 DynamicFilterDynamicFilterDynamicFilter コントロールを含むように構成します。これにより、UI、ユーザー テーブル行のフィルタ処理を実行することができますがの自動作成します。

  2. 情報のフィルタのデータ ソースを定義します。QueryExtenderQueryExtenderQueryExtender コントロールを追加し、 QueryableFilterRepeaterQueryableFilterRepeaterQueryableFilterRepeater コントロールを参照するように構成します。これにより、ページのデータ ソース コントロールにフィルタ情報を渡します。

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

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

  1. DynamicFilter DynamicFilterDynamicFilter のコントロールは、 QueryExtenderQueryExtenderQueryExtender コントロールをユーザーの選択されている値を渡します。

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

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

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

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

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

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

動的データ テーブルの行の自動処理要素

次手順を前提としています

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

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

  2. データ バインド コントロールの前に、ページに、QueryableFilterRepeaterQueryableFilterRepeaterQueryableFilterRepeater コントロール追加します。

  3. ItemTemplate ItemTemplateItemTemplate コントロールの QueryableFilterRepeaterQueryableFilterRepeaterQueryableFilterRepeater で、 DynamicFilterDynamicFilterDynamicFilter コントロール追加します。

    次の例、QueryableFilterRepeaterQueryableFilterRepeaterQueryableFilterRepeater コントロールが含まれている DynamicFilterDynamicFilterDynamicFilter コントロールのマークアップに示します。

    <asp:QueryableFilterRepeater ID="FilterRepeaterID" runat="server" >
      <ItemTemplate>
        <asp:DynamicFilter ID="DynamicFilter" 
          runat="server" />
      </ItemTemplate>
    </asp:QueryableFilterRepeater> 
    
  4. DynamicFilter DynamicFilterDynamicFilter コントロールを自動的に関連する既定のフィルタ テンプレートを含む列の種類ごとの DropDownListDropDownListDropDownList コントロールを生成します。既定では、ブール型 (Boolean) の値と外部キー列のみフィルタ テンプレートをあります。DropDownListDropDownListDropDownList コントロール、ユーザーのテーブルの行をフィルタには、列値を選択ことができます。

  5. Label LabelLabel コントロールを追加します。動的なデータでデータのフィルタのために使用できる任意の列の名前を表示は LabelLabelLabel コントロールを使用します。

    次の例、データをフィルタ処理に使用する列の名前を表示する LabelLabelLabel のマークアップに示します。

    <asp:QueryableFilterRepeater ID="FilterRepeaterID" runat="server" >
      <ItemTemplate>
        <asp:Label ID="Label1" runat="server" 
          Text='<%# Eval("DisplayName") %>: ' />
        <asp:DynamicFilter ID="DynamicFilter" 
          runat="server" />
      </ItemTemplate>
    </asp:QueryableFilterRepeater> 
    

    これにより、関連する DropDownListDropDownListDropDownList コントロール、前の手順にビルドの前に、列名が表示されます。

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

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

    次の例を拡張データ ソース コントロールを指す QueryExtenderQueryExtenderQueryExtender コントロールのマークアップに示します。

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

  3. Set the DynamicFilterExpressionDynamicFilterExpressionDynamicFilterExpressionControlIDControlIDControlID property to the identifier of the DynamicFilterRepeaterDynamicFilterRepeaterDynamicFilterRepeater control.

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

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

使用例

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

コードのコンパイル方法

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

参照

処理手順

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

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

参照

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

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

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