次の方法で共有


QueryExtender Web サーバー コントロールの概要

QueryExtender コントロールは、データ ソースから取得されたデータに対するフィルターを作成するために使用されます。このコントロールでは、データ ソース内で明示的に Where 句を使用する必要がありません。 このコントロールは、Web ページのマークアップ内で、宣言構文を使用してデータをフィルター処理するために使用できます。

背景

フィルター処理は、指定されている条件に一致するレコードのみを表示することで、データ ソースから取得されるデータを除外する処理です。 フィルター処理を使用すると、データセット内のデータに影響を及ぼすことなく、データセットのデータをさまざまな条件に合わせて表示できます。

フィルター処理では、通常、データ ソースを照会するコマンドに適用する Where 句を作成する必要があります。 ただし、LinqDataSource コントロールの Where プロパティでは、LINQ で使用できる機能が完全には公開されません。

データのフィルター処理を容易にするために、ASP.NET には QueryExtender コントロールが用意されています。これをデータ ソースと共に使用すると、宣言構文によってデータをフィルター処理できます。 QueryExtender コントロールを使用すると、次の利点があります。

  • Where 句を作成するよりも詳細にフィルター処理を表現できます。

  • LinqDataSource コントロールと EntityDataSource コントロールに共通のクエリ言語を提供します。 たとえば、QueryExtender とこれらのデータ ソース コントロールを共に使用すると、モデル固有の Where 句や eSQL ステートメントを作成しなくても、Web ページの検索機能を実現できます。

  • LinqDataSource コントロール、EntityDataSource コントロール、またはサードパーティのデータ ソースと使用できます。

  • 個別でも組み合わせても使用できる、さまざまなフィルター処理オプションをサポートしています。

フィルター オプション

QueryExtender コントロールは、データのフィルター処理に使用できるさまざまなオプションをサポートしています。 このコントロールは、文字列の検索、指定された範囲内の値の検索、テーブル内のプロパティ値と指定された値の比較、並べ替え、カスタム クエリなどのさまざまなフィルター オプションをサポートします。 これらのオプションは、QueryExtender コントロールの LINQ 式として用意されています。 QueryExtender コントロールは、ASP.NET 動的データに固有の式もサポートします。

SearchExpession

SearchExpression クラスは、1 つ以上のフィールドから文字列値を検索し、それらを指定された文字列値と比較します。 式では、"で始まる"、"を含む"、または "で終わる" という条件の検索を実行できます。 たとえば、テキスト ボックス コントロールにテキストを入力し、式を使用して、データ ソース コントロールから返された列内でそのテキストを検索できます。

注意

検索式で大文字と小文字が区別されるかどうかは、QueryExtender コントロールに指定する LINQ プロバイダーによって決まります。

RangeExpression

RangeExpression クラスは SearchExpression クラスに似ていますが、範囲を定義する値の組を使用します。 この式は、列の値が指定された最小値と最大値の間にあるかどうかを判断します。 たとえば、テーブル内の単価の列から、$10 ~ $100 の範囲にある値を検索できます。

PropertyExpression

PropertyExpression クラスは、列のプロパティ値と指定された値を比較します。 たとえば、データベース内の Products テーブルの discontinued 列の値とブール値を比較できます。

OrderByExpression

OrderByExpression クラスを使用すると、指定した列と並べ替えの方向でデータを並べ替えることができます。

CustomExpression

CustomExpression クラスを使用すると、QueryExtender コントロールで使用できるカスタムの LINQ 式を指定できます。

DynamicFilterExpression

DynamicFilterExpression クラスは、ASP.NET 動的データ Web サイトでのみサポートされます。 詳細については、「方法 : 動的データで親 Table から値を使用してテーブルの行をフィルタします。」を参照してください。

ControlFilterExpression

ControlFilterExpression クラスは、ASP.NET 動的データ Web サイトでのみサポートされます。 詳細については、「方法 : 動的データを外部キーを使用したテーブルの行をフィルター処理します。」を参照してください。

コード例

QueryExtender コントロールの使用方法の例については、「チュートリアル: 宣言構文による Web ページでのデータのフィルター処理」を参照してください。

クラス リファレンス

QueryExtender コントロールに関連する主要なクラスの一覧を次の表に示します。

説明

QueryExtender

コントロールのメイン クラスです。

CustomExpression

任意のデータ ソースに対するユーザー定義の式を指定します。 カスタム式は、関数内で使用したり、ページのマークアップから呼び出したりできます。

OrderByExpression

IQueryable データ ソース オブジェクトに並べ替え式を適用します。

PropertyExpression

WhereParameters コレクション内の指定されたパラメーターから Where 句を作成します。

RangeExpression

値が指定された値よりも大きいか小さいか、または値が 2 つの指定された値の間にあるかどうかを判断します。

SearchExpression

フィールドから文字列値を検索し、それらを指定された文字列値と比較します。

ThenByExpressions

OrderByExpression 式が適用された後に、IQueryable データ ソース オブジェクトに並べ替え式を適用します。

DynamicFilterExpression

指定されたフィルター コントロールを使用して、データベース クエリを作成します。

ControlFilterExpression

ソースのデータ バインド コントロールで選択されているデータ キーを使用して、データベース クエリを作成します。

参照

処理手順

チュートリアル: 宣言構文による Web ページでのデータのフィルター処理

参照

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

QueryExtender

QueryableDataSource