Sdílet prostřednictvím


LinqDataSource.AutoGenerateWhereClause Vlastnost

Definice

Získá nebo nastaví hodnotu, která označuje, zda LinqDataSource ovládací prvek dynamicky vytvoří klauzuli Where na základě hodnot definovaných v kolekci WhereParameters .

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

Hodnota vlastnosti

Boolean

trueLinqDataSource pokud ovládací prvek vytvoří klauzuli Where; jinak, false. Výchozí formát je false.

Implementuje

Příklady

Následující příklad ukazuje LinqDataSource ovládací prvek se AutoGenerateWhereClause sadou na true. Ovládací GridView prvek je vázán na LinqDataSource ovládací prvek, aby se zobrazila data vrácená z dotazu. Ovládací DropDownList prvek je zahrnut, který je naplněn třemi hodnotami. Parametr je součástí WhereParameters kolekce s názvem nastaveným tak, aby Category, odpovídal jednomu z vlastností datového objektu. Jeho ControlID vlastnost je nastavena na ID DropDownList ovládacího prvku. Ovládací LinqDataSource prvek automaticky vytvoří Where vlastnost pro filtrování záznamů na základě hodnoty, kterou uživatel vybere z DropDownList ovládacího prvku. Dotaz vrátí záznamy, jejichž Category vlastnost odpovídá hodnotě, kterou uživatel vybral z DropDownList ovládacího prvku.

<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>

Poznámky

Když vlastnost nastavíte AutoGenerateWhereClause na true, LinqDataSource ovládací prvek dynamicky vytvoří klauzuli Where z parametrů v kolekci WhereParameters . Každý parametr, který přidáte do WhereParameters kolekce, musí mít jeho Name vlastnost nastavenou na hodnotu, která odpovídá vlastnosti v datovém objektu, který se dotazuje. Automaticky vygenerovaná klauzule Where zkontroluje, jestli se hodnota zadaná v WhereParameters kolekci rovná hodnotě odpovídající vlastnosti v datovém objektu. Pokud zadáte více než jeden parametr, budou parametry propojeny s logickou AND operací. Parametry obsahující null nebo prázdné hodnoty nejsou zahrnuty do klauzule Where.

Automaticky vygenerovaná Where klauzule může testovat pouze rovnost a může propojit parametry pouze s AND operací. Vlastnost nenastavujte AutoGenerateWhereClause true , pokud potřebujete přidat podmínku, která neprovádí testování rovnosti nebo pokud potřebujete propojit parametry s OR operací. Tyto úlohy můžete provést nastavením AutoGenerateWhereClause vlastnosti false a přidáním zástupných symbolů do Where vlastnosti pro každý parametr v kolekci WhereParameters . Where V vlastnosti předčítá každý zástupný název symbolem @.

Vlastnost nenastavíte Where , pokud AutoGenerateWhereClause je truevlastnost , protože analyzátor dynamicky vytvoří klauzuli Where. Ovládací LinqDataSource prvek vyvolá výjimku, pokud AutoGenerateWhereClause je true vlastnost a Where vlastnost je přiřazena hodnoty.

Platí pro