LinqDataSource.AutoGenerateWhereClause Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define um valor que indica se o controlo LinqDataSource cria dinamicamente uma cláusula Where com base nos valores definidos na WhereParameters coleção.
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
Valor de Propriedade
true se o LinqDataSource controlo criará a cláusula Where ; caso contrário, false. A predefinição é false.
Implementações
Exemplos
O exemplo seguinte mostra um LinqDataSource controlo com o AutoGenerateWhereClause conjunto de .true Um GridView controlo está ligado ao LinqDataSource controlo para mostrar os dados devolvidos da consulta. Inclui um DropDownList controlo que é preenchido com três valores. Um parâmetro é incluído na WhereParameters coleção com o nome definido Category, que corresponde a uma das propriedades do objeto de dados. A sua ControlID propriedade está definida para o ID do DropDownList controlo. O LinqDataSource controlo cria automaticamente a Where propriedade para filtrar registos com base no valor que o utilizador seleciona do DropDownList controlo. A consulta devolve os registos cuja Category propriedade corresponde ao valor que o utilizador selecionou no DropDownList controlo.
<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>
Observações
Quando defines a AutoGenerateWhereClause propriedade para true, o LinqDataSource controlo cria dinamicamente a cláusula Where a partir dos parâmetros na WhereParameters coleção. Cada parâmetro que adicionar à WhereParameters coleção deve ter Name a sua propriedade definida com um valor que corresponda a uma propriedade no objeto de dados que está a ser consultado. A cláusula Where gerada automaticamente verificará se o valor especificado na WhereParameters coleção é igual ao valor da propriedade correspondente no objeto de dados. Se fornecer mais do que um parâmetro, os parâmetros estão ligados a uma operação lógica AND . Parâmetros que contêm null ou um valor vazio não estão incluídos na cláusula Where.
A cláusula gerada Where automaticamente só pode testar a igualdade e pode ligar parâmetros apenas com a AND operação. Não defina a AutoGenerateWhereClause propriedade se true tiver de adicionar uma condição que não teste a igualdade ou se tiver de relacionar parâmetros com a OR operação. Pode realizar estas tarefas definindo a AutoGenerateWhereClause propriedade como false e adicionando marcadores de Where posição para cada parâmetro da WhereParameters coleção. Na Where propriedade, introduza cada nome provisório com o símbolo @.
Não defines a Where propriedade quando a AutoGenerateWhereClause propriedade é true, porque o analisador cria dinamicamente a cláusula Where . O LinqDataSource controlo lança uma exceção se a AutoGenerateWhereClause propriedade for true e a Where propriedade for atribuída a valores.