LinqDataSource.AutoGenerateWhereClause Свойство

Определение

Возвращает или задает значение, определяющее, создает ли динамически элемент управления LinqDataSource оператор Where, основываясь на значениях, определенных в коллекции 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

Значение свойства

Boolean

true, если элемент управления LinqDataSource создает оператор Where; в противном случае — false. Значение по умолчанию — false.

Реализации

Примеры

В следующем примере показан LinqDataSource элемент управления с заданным значением AutoGenerateWhereClause true. Элемент GridView управления привязан к LinqDataSource элементу управления для отображения данных, возвращаемых из запроса. Элемент DropDownList управления включается, заполненный тремя значениями. Параметр включается в коллекцию WhereParameters с именем, которому Category, соответствует одно из свойств объекта данных. Его ControlID свойство имеет идентификатор 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>

Комментарии

При установке AutoGenerateWhereClause свойства trueLinqDataSource элемент управления динамически создает предложение Where из параметров в WhereParameters коллекции. Каждый параметр, добавляемый в WhereParameters коллекцию, должен иметь значение Name , соответствующее свойству в запрашиваемом объекте данных. Автоматически созданное предложение Where проверяет, равно ли значение, указанное в WhereParameters коллекции, значению соответствующего свойства в объекте данных. Если указать несколько параметров, параметры связаны с логической AND операцией. Параметры, содержащие null или пустые значения, не включаются в предложение Where.

Автоматически созданное Where предложение может проверяться только на равенство и может связывать параметры только с операцией AND . Не устанавливайте AutoGenerateWhereClause свойство, true если необходимо добавить условие, которое не проверяет равенство или если необходимо связать параметры с операцией OR . Эти задачи можно выполнить, задав AutoGenerateWhereClause свойство false и добавив заполнители в Where свойство для каждого параметра в WhereParameters коллекции. В свойстве предусловите каждое Where имя заполнителя символом @.

Свойство не задано Where , AutoGenerateWhereClause trueтак как средство синтаксического анализа динамически создает предложение Where. Элемент LinqDataSource управления создает исключение, если AutoGenerateWhereClause свойство и true Where свойство присваивается значениям.

Применяется к