LinqDataSource.AutoGenerateWhereClause 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示 LinqDataSource 控件是否基于 WhereParameters 集合中定义的值来动态创建 Where 子句。
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
属性值
如果 LinqDataSource 控件将创建 Where 子句,则为 true
;否则为 false
。 默认值为 false
。
实现
示例
The following example shows a LinqDataSource control with the AutoGenerateWhereClause set to true
. 控件 GridView 绑定到 LinqDataSource 控件以显示从查询返回的数据。 包含一个 DropDownList 用三个值填充的控件。 参数包含在集合中 WhereParameters ,其名称集 Category,
与数据对象的属性之一匹配。 其 ControlID 属性设置为控件的 DropDownList ID。 该LinqDataSource控件根据用户从DropDownList控件中选择的值自动创建Where用于筛选记录的属性。 查询返回其 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>
注解
将属性true
设置为AutoGenerateWhereClause时,控件LinqDataSource将从集合中的WhereParameters参数动态创建 Where 子句。 添加到 WhereParameters 集合的每个参数都必须将其 Name 属性设置为与要查询的数据对象中的属性匹配的值。 自动生成的 Where 子句将检查集合中指定的 WhereParameters 值是否等于数据对象中匹配属性的值。 如果提供多个参数,参数将链接到逻辑 AND
操作。 包含 null
或空值的参数不包括在 Where 子句中。
自动生成 Where 的子句只能测试相等性,并且只能将参数与 AND
操作链接。 如果必须添加不测试相等的条件,或者必须将参数与操作关联,请不要将属性true
设置为AutoGenerateWhereClause该OR
属性。 可以通过将AutoGenerateWhereClause属性设置为false
集合中WhereParameters每个参数的属性并添加占位符Where来完成这些任务。 在属性中 Where ,用 @ 符号开头每个占位符名称。
当属性为true
时AutoGenerateWhereClause,不会设置Where该属性,因为分析器动态创建 Where 子句。 如果AutoGenerateWhereClause属性为true
属性且属性已分配值,Where控件LinqDataSource将引发异常。