QueryExtender 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
允许在数据源中不使用显式 Where
子句的情况下筛选来自数据源的数据。
public ref class QueryExtender : System::Web::UI::Control
[System.Drawing.ToolboxBitmap(typeof(System.Web.UI.WebControls.QueryExtender), "QueryExtender.bmp")]
public class QueryExtender : System.Web.UI.Control
[<System.Drawing.ToolboxBitmap(typeof(System.Web.UI.WebControls.QueryExtender), "QueryExtender.bmp")>]
type QueryExtender = class
inherit Control
Public Class QueryExtender
Inherits Control
- 继承
- 属性
示例
以下示例演示如何使用 QueryExtender 控件在网页中提供搜索功能。 控件 QueryExtender 使用在 控件中 TextBoxSearch
输入的文本在从 LinqDataSource 控件返回的数据中搜索 Products 表的 ProductName 和 Supplier.CompanyName 列中的内容。 对象 SearchExpression 用于执行搜索。 属性 DataFields 指定要搜索的数据字段。 属性 SearchType 指定要执行的搜索的类型。 元素 ControlParameter 指定包含要用于搜索的文本的控件。 此代码示例是 演练:使用声明性语法筛选网页中的数据中提供的更大示例的一部分。
<asp:LinqDataSource ID="dataSource" runat="server"
TableName="Products">
</asp:LinqDataSource>
<asp:QueryExtender TargetControlID="dataSource" runat="server">
<asp:SearchExpression DataFields="ProductName, Supplier.CompanyName"
SearchType="StartsWith">
<asp:ControlParameter ControlID="TextBoxSearch" />
</asp:SearchExpression>
</asp:QueryExtender>
以下示例演示如何使用 QueryExtender 控件在网页中搜索指定范围内的值。 控件QueryExtender使用 在 和 TextBoxTo
控件中TextBoxFrom
输入的值,在从控件返回的数据中搜索 Products 表的 ProductName 和 Supplier.CompanyName 列中的值LinqDataSource。 元素 ControlParameter 指定包含用于搜索范围的最小值和最大值的文本框控件。
MinType和 MaxType 属性指定最小值和最大值必须包含在返回的数据中。 此代码示例是 演练:使用声明性语法筛选网页中的数据中提供的更大示例的一部分。
<asp:LinqDataSource ID="dataSource" runat="server"
TableName="Products">
</asp:LinqDataSource>
<asp:QueryExtender TargetControlID="dataSource" runat="server">
<asp:RangeExpression DataField="UnitPrice" MinType="Inclusive"
MaxType="Inclusive">
<asp:ControlParameter ControlID="TextBoxFrom" />
<asp:ControlParameter ControlID="TexBoxTo" />
</asp:RangeExpression>
</asp:QueryExtender>
注解
本主题内容:
介绍
控件 QueryExtender 用于为从数据源检索的数据创建筛选器,而无需在数据源中使用显式 Where
子句。 控件 QueryExtender 可用于使用声明性语法指定筛选。
背景
筛选通过仅显示符合指定条件的记录,从数据源中排除数据。 通过筛选,可以显示数据集中数据的不同视图,而不会影响数据集中的数据。
筛选通常要求创建子 Where
句以应用于查询数据源的命令。 但是, Where
数据源控件的 属性可能不会公开可用的完整功能。 例如,使用 QueryExtender 控件,可以通过在 .data 字段中的开头、结尾或任意位置搜索字符串来查询表。
为了公开 LINQ 中提供的完整功能并使筛选数据更容易,ASP.NET 提供了 QueryExtender 控件。 控件 QueryExtender 具有以下优点:
它提供比编写
Where
子句更丰富的筛选体验。 例如,可以使用 筛选器在 Products 表中搜索布尔值 PropertyExpression ,而无需编写查询。它允许对 和 EntityDataSource 控件以及可能使用的任何其他数据源控件使用相同的语法LinqDataSource来指定筛选器。
它可以与 LinqDataSource 控件、 EntityDataSource 控件或第三方数据源一起使用。
筛选器选项
控件 QueryExtender 支持可用于筛选数据的各种选项。 控件允许搜索字符串、搜索指定范围内的数值,以及将表中的属性值与指定值进行比较。 控件还允许对数据进行排序并提供自定义查询。
这些选项作为 控件中的 QueryExtender LINQ 表达式提供。 控件 QueryExtender 还支持特定于 ASP.NET 动态数据应用程序的表达式。
下表列出了可用于筛选 控件中的数据 QueryExtender 的选项。
表达式 | 说明 |
---|---|
ControlFilterExpression | 仅 (动态数据) 使用源数据绑定控件中选择的数据键生成数据库查询。 有关如何使用此筛选器选项的信息,请参阅 如何:在动态数据中使用父表中的值筛选表行。 |
CustomExpression | 指定数据源的用户定义表达式。 可以在事件处理程序中调用自定义 LINQ 表达式。 |
DynamicFilterExpression | 仅 (动态数据) 使用指定的 DynamicFilter 控件生成数据库查询。 有关如何使用此筛选器选项的信息,请参阅 如何:在动态数据中使用外键筛选表行。 |
MethodExpression | 为数据源指定用户定义的 LINQ 表达式。 表达式在 方法中调用。 |
OrderByExpression | 将排序表达式应用于 IQueryable 数据源对象。 应用 OrderByExpression 值后,可以通过指定 ThenByExpressions 值来应用其他排序操作。 |
PropertyExpression | 比较数据字段和集合中指定的属性值的属性 WhereParameters 。 |
RangeExpression | 确定值是否大于或小于指定值,或者值是否介于两个值之间。 |
SearchExpression | 将字段或字段中的值与指定的字符串值进行比较。 |
可以单独使用这些 QueryExtender 选项,也可以将它们组合在一起,在网页中提供复杂的筛选。 有关详细信息,请参阅 QueryExtender Web 服务器控件概述。 演练:使用声明性语法筛选网页中的数据
任务
下表列出了演示如何使用 QueryExtender 控件筛选数据的任务。
文档 | 任务 |
---|---|
演练:使用声明性语法筛选网页中的数据 | 演示如何使用 控件提供的筛选器选项 QueryExtender 。 |
声明性语法
<asp:QueryExtender
EnableViewState="True|False"
ID="string"
OnDataBinding="DataBiding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="UnLoad event handler"
Runat="server"
TargetControlID="string"
Visible="True|False"
>
<asp:ControlFilterExpression
ControlD="string"
Column="string">
</asp:ControlFilterExpression>
<asp:DynamicFilterExpression
ControlD="string"
</asp:DynamicFilterExpression>
<asp:CustomExpression="string"
OnQuerying="OnQuerying event handler">
</asp:CustomExpression>
<asp:OrderByExpression="string"
DataField="string"
Direction="string">
<asp:ThenByExpression
DataField="string"
Direction="string"
</asp:ThenBy>
</asp:OrderByExpression>
<asp:PropertyExpression="string">
<!-- child controls -->
</asp:PropertyExpression
>
<asp:RangeExpression="integer"
Datafield="string"
MaxType="Exclusive|Inclusive|None"
MinType="Exclusive|Inclusive|None">
<!--child controls-->
</asp:RangeExpression>
<asp:SearchExpression="string"
ComparisonType="CurrentCulture|CurrentCultureIgnoreCase|
InvariantCulture|InvariantCultureIgnoreCase|
Ordinal|OrdinalIgnoreCase"
DataField="string"
SearchType="Contains|EndsWith|StartsWith">
<!--child controls-->
</asp:SearchExpression>
</asp:QueryExtender>
构造函数
QueryExtender() |
初始化 QueryExtender 类的新实例。 |
属性
Adapter |
获取控件的浏览器特定适配器。 (继承自 Control) |
AppRelativeTemplateSourceDirectory |
获取或设置包含该控件的 Page 或 UserControl 对象的应用程序相对虚拟目录。 (继承自 Control) |
BindingContainer |
获取包含该控件的数据绑定的控件。 (继承自 Control) |
ChildControlsCreated |
获取一个值,该值指示是否已创建服务器控件的子控件。 (继承自 Control) |
ClientID |
获取由 ASP.NET 生成的 HTML 标记的控件 ID。 (继承自 Control) |
ClientIDMode |
获取或设置用于生成 ClientID 属性值的算法。 (继承自 Control) |
ClientIDSeparator |
获取一个字符值,该值表示 ClientID 属性中使用的分隔符字符。 (继承自 Control) |
Context |
为当前 Web 请求获取与服务器控件关联的 HttpContext 对象。 (继承自 Control) |
Controls |
获取 ControlCollection 对象,该对象表示 UI 层次结构中的指定服务器控件的子控件。 (继承自 Control) |
DataItemContainer |
如果命名容器实现 IDataItemContainer,则获取对命名容器的引用。 (继承自 Control) |
DataKeysContainer |
如果命名容器实现 IDataKeysControl,则获取对命名容器的引用。 (继承自 Control) |
DataSource |
获取要用于查询的数据源控件(IDataSource 对象)。 |
DesignMode |
获取一个值,该值指示是否正在使用设计图面上的一个控件。 (继承自 Control) |
EnableTheming |
获取或设置一个值,该值指示主题是否应用于该控件。 (继承自 Control) |
EnableViewState |
获取或设置一个值,该值指示服务器控件是否向发出请求的客户端保持自己的视图状态以及它所包含的任何子控件的视图状态。 (继承自 Control) |
Events |
获取控件的事件处理程序委托列表。 此属性为只读。 (继承自 Control) |
Expressions |
获取应用于 IDataSource 控件的表达式的集合。 |
HasChildViewState |
获取一个值,该值指示当前服务器控件的子控件是否具有任何已保存的视图状态设置。 (继承自 Control) |
ID |
获取或设置分配给服务器控件的编程标识符。 (继承自 Control) |
IdSeparator |
获取用于分隔控件标识符的字符。 (继承自 Control) |
IsChildControlStateCleared |
获取一个值,该值指示该控件中包含的控件是否具有控件状态。 (继承自 Control) |
IsTrackingViewState |
获取一个值,用于指示服务器控件是否会将更改保存到其视图状态中。 (继承自 Control) |
IsViewStateEnabled |
获取一个值,该值指示是否为该控件启用了视图状态。 (继承自 Control) |
LoadViewStateByID |
获取一个值,该值指示控件是否通过 ID 而不是索引参与加载其视图状态。 (继承自 Control) |
NamingContainer |
获取对服务器控件的命名容器的引用,此引用创建唯一的命名空间,以区分具有相同 ID 属性值的服务器控件。 (继承自 Control) |
Page |
获取对包含服务器控件的 Page 实例的引用。 (继承自 Control) |
Parent |
获取对页 UI 层次结构中服务器控件的父控件的引用。 (继承自 Control) |
RenderingCompatibility |
获取一个值,该值指定呈现的 HTML 将与之兼容的 ASP.NET 版本。 (继承自 Control) |
Site |
获取容器信息,该容器在呈现于设计图面上时承载当前控件。 (继承自 Control) |
SkinID |
获取或设置要应用于控件的外观。 (继承自 Control) |
TargetControlID |
获取或设置用于查询的 IDataSource 控件的 ID。 |
TemplateControl |
获取或设置对包含该控件的模板的引用。 (继承自 Control) |
TemplateSourceDirectory |
获取包含当前服务器控件的 Page 或 UserControl 的虚拟目录。 (继承自 Control) |
UniqueID |
获取服务器控件的唯一的、以分层形式限定的标识符。 (继承自 Control) |
ValidateRequestMode |
获取或设置指示控件是否检查来自浏览器的客户端输入是否具有潜在危险值的值。 (继承自 Control) |
ViewState |
获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。 (继承自 Control) |
ViewStateIgnoresCase |
获取一个值,该值指示 StateBag 对象是否不区分大小写。 (继承自 Control) |
ViewStateMode |
获取或设置此控件的视图状态模式。 (继承自 Control) |
Visible |
获取或设置一个值,该值指示服务器控件是否作为 UI 呈现在页上。 (继承自 Control) |
方法
事件
DataBinding |
当服务器控件绑定到数据源时发生。 (继承自 Control) |
Disposed |
当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。 (继承自 Control) |
Init |
当服务器控件初始化时发生;初始化是控件生存期的第一步。 (继承自 Control) |
Load |
当服务器控件加载到 Page 对象中时发生。 (继承自 Control) |
PreRender |
在加载 Control 对象之后、呈现之前发生。 (继承自 Control) |
Unload |
当服务器控件从内存中卸载时发生。 (继承自 Control) |
显式接口实现
IControlBuilderAccessor.ControlBuilder |
有关此成员的说明,请参见 ControlBuilder。 (继承自 Control) |
IControlDesignerAccessor.GetDesignModeState() |
有关此成员的说明,请参见 GetDesignModeState()。 (继承自 Control) |
IControlDesignerAccessor.SetDesignModeState(IDictionary) |
有关此成员的说明,请参见 SetDesignModeState(IDictionary)。 (继承自 Control) |
IControlDesignerAccessor.SetOwnerControl(Control) |
有关此成员的说明,请参见 SetOwnerControl(Control)。 (继承自 Control) |
IControlDesignerAccessor.UserData |
有关此成员的说明,请参见 UserData。 (继承自 Control) |
IDataBindingsAccessor.DataBindings |
有关此成员的说明,请参见 DataBindings。 (继承自 Control) |
IDataBindingsAccessor.HasDataBindings |
有关此成员的说明,请参见 HasDataBindings。 (继承自 Control) |
IExpressionsAccessor.Expressions |
有关此成员的说明,请参见 Expressions。 (继承自 Control) |
IExpressionsAccessor.HasExpressions |
有关此成员的说明,请参见 HasExpressions。 (继承自 Control) |
IParserAccessor.AddParsedSubObject(Object) |
有关此成员的说明,请参见 AddParsedSubObject(Object)。 (继承自 Control) |
扩展方法
FindDataSourceControl(Control) |
返回与指定控件的数据控件关联的数据源。 |
FindFieldTemplate(Control, String) |
返回指定控件的命名容器中指定列的字段模板。 |
FindMetaTable(Control) |
返回包含数据控件的元表对象。 |