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
Значение свойства
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 свойства true
LinqDataSource элемент управления динамически создает предложение 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 свойство присваивается значениям.