LinqDataSource.AutoGenerateWhereClause Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
true
LinqDataSource 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 true
vlastnost , 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.