次の方法で共有


LinqDataSource.AutoGenerateWhereClause プロパティ

定義

LinqDataSource コントロールが WhereParameters コレクションに定義された値に基づいて Where 句を動的に作成するかどうかを示す値を取得または設定します。

public:
 property bool AutoGenerateWhereClause { bool get(); void set(bool value); };
public bool AutoGenerateWhereClause { get; set; }
member this.AutoGenerateWhereClause : bool with get, set
Public Property AutoGenerateWhereClause As Boolean

プロパティ値

Boolean

LinqDataSource コントロールが Where 句を作成する場合は true。それ以外の場合は false。 既定値は、false です。

実装

次の例は、次に設定trueされたLinqDataSourceコントロールをAutoGenerateWhereClause示しています。 GridViewコントロールは、クエリから返されるデータを表示するためにコントロールにバインドLinqDataSourceされます。 DropDownList 3 つの値が設定されたコントロールが含まれています。 パラメーターは、データ オブジェクトのいずれかのプロパティに一致する名前が設定Category,されたコレクションに含まれますWhereParameters。 その ControlID プロパティは、コントロールの ID に設定されます DropDownList 。 コントロールは LinqDataSource 、ユーザーが Where コントロールから選択した値に基づいてレコードをフィルター処理するプロパティを自動的に DropDownList 作成します。 このクエリは、ユーザーが Category コントロールから選択した値と一致するプロパティを持つレコードを DropDownList 返します。

<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
    <asp:ListItem Value="Sports"></asp:ListItem>
    <asp:ListItem Value="Garden"></asp:ListItem>
    <asp:ListItem Value="Auto"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    AutoGenerateWhereClause="true"
    ID="LinqDataSource1" 
    runat="server">
    <WhereParameters>
        <asp:ControlParameter 
            Name="Category" 
            ControlID="DropDownList1" 
            Type="String" />
    </WhereParameters>
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
    <asp:ListItem Value="Sports"></asp:ListItem>
    <asp:ListItem Value="Garden"></asp:ListItem>
    <asp:ListItem Value="Auto"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    AutoGenerateWhereClause="true"
    ID="LinqDataSource1" 
    runat="server">
    <WhereParameters>
        <asp:ControlParameter 
            Name="Category" 
            ControlID="DropDownList1" 
            Type="String" />
    </WhereParameters>
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

注釈

プロパティtrueAutoGenerateWhereClause設定すると、コントロールはコレクション内のLinqDataSourceパラメーターから Where 句を動的にWhereParameters作成します。 コレクションに追加する WhereParameters 各パラメーターには Name 、クエリ対象のデータ オブジェクト内のプロパティと一致する値にプロパティが設定されている必要があります。 自動的に生成された Where 句は、コレクションで WhereParameters 指定された値がデータ オブジェクト内の一致するプロパティの値と等しいかどうかを確認します。 複数のパラメーターを指定した場合、パラメーターは論理 AND 操作にリンクされます。 Where 句には、値を含む null パラメーターまたは空の値は含まれません。

自動的に生成される Where 句は、等しいかどうかをテストすることしかできません。また、パラメーターを操作と AND のみリンクできます。 等しいかどうかをテストしない条件を追加する必要がある場合、またはパラメーターを操作に関連付ける必要がある場合は、プロパティtrueOR設定AutoGenerateWhereClauseしないでください。 これらのタスクを実行するには、プロパティfalseAutoGenerateWhereClause設定し、コレクション内の各パラメーターのWhereプロパティにプレースホルダーをWhereParameters追加します。 Whereこのプロパティでは、各プレースホルダー名の前に @ 記号を付けます。

プロパティがあるWhere場合、パーサーは trueWhere 句をAutoGenerateWhereClause動的に作成するため、プロパティを設定しません。 LinqDataSourceプロパティが存在し、プロパティに値がAutoGenerateWhereClausetrue割り当てられている場合、コントロールは例外をWhereスローします。

適用対象