QueryExtender Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Позволяет фильтровать данные из источника данных без явного предложения 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
в элементе управления, для поиска содержимого в столбцах ProductName и Supplier.CompanyName таблицы Products в данных, возвращаемых элементом LinqDataSource управления. Объект 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 управления использует значения, введенные в TextBoxFrom
элементы управления и TextBoxTo
, для поиска значений в столбцах ProductName и Supplier.CompanyName таблицы Products в данных, возвращаемых из 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 фильтра без написания запроса.Он позволяет указать фильтры, используя тот же синтаксис для LinqDataSource элементов управления и и EntityDataSource для любых других элементов управления источником данных, которые вы можете использовать.
Его можно использовать с LinqDataSource элементом управления, с элементом EntityDataSource управления или со сторонними источниками данных.
Параметры фильтрации
Элемент QueryExtender управления поддерживает различные параметры, которые можно использовать для фильтрации данных. Элемент управления позволяет искать строки, числовые значения в указанном диапазоне и сравнивать значение свойства в таблице с указанным значением. Элемент управления также позволяет сортировать данные и предоставлять пользовательские запросы.
Эти параметры предоставляются в виде выражений LINQ в элементе QueryExtender управления . Элемент QueryExtender управления также поддерживает выражения, характерные для приложений ASP.NET динамических данных.
В следующей таблице перечислены параметры, которые можно использовать для фильтрации данных в элементе QueryExtender управления .
Выражение | Описание |
---|---|
ControlFilterExpression | (только динамические данные) Создает запрос к базе данных с помощью ключа данных, выбранного в элементе управления с привязкой к исходным данным. Сведения об использовании этого параметра фильтра см. в разделе Практическое руководство. Фильтрация строк таблицы с помощью значений из родительской таблицы в динамических данных. |
CustomExpression | Задает определяемое пользователем выражение для источника данных. Пользовательское выражение LINQ можно вызвать в обработчике событий. |
DynamicFilterExpression | (только динамические данные) Создает запрос к базе данных с помощью указанного DynamicFilter элемента управления . Сведения об использовании этого параметра фильтра см. в разделе Практическое руководство. Фильтрация строк таблицы с помощью внешнего ключа в динамических данных. |
MethodExpression | Задает определяемое пользователем выражение LINQ для источника данных. Выражение вызывается в методе . |
OrderByExpression | Применяет выражение сортировки к объекту IQueryable источника данных. После применения OrderByExpression значения можно применить дополнительные операции сортировки, указав ThenByExpressions значение . |
PropertyExpression | Сравнивает свойства поля данных и значения свойств, указанные WhereParameters в коллекции. |
RangeExpression | Определяет, больше или меньше указанного значения или находится ли значение между двумя значениями. |
SearchExpression | Сравнивает значения в поле или полях с указанным строковым значением. |
Эти параметры можно использовать QueryExtender по отдельности или комбинировать для обеспечения сложной фильтрации на веб-странице. Дополнительные сведения см. в статье Общие сведения о серверных веб-элементах управления QueryExtender. Пошаговое руководство. Фильтрация данных на веб-странице с помощью декларативного синтаксиса
Задания
В следующей таблице перечислены задачи, демонстрирующие использование 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 |
Получает идентификатор элемента управления для HTML-разметки, созданной ASP.NET. (Унаследовано от Control) |
ClientIDMode |
Возвращает или задает алгоритм, используемый для создания значения свойства ClientID. (Унаследовано от Control) |
ClientIDSeparator |
Возвращает значение символа разделителя, используемого в свойстве ClientID. (Унаследовано от Control) |
Context |
Возвращает объект HttpContext, связанный с серверным элементом управления для текущего веб-запроса. (Унаследовано от Control) |
Controls |
Возвращает объект ControlCollection, который представляет дочерние элементы управления для указанного элемента управления сервера в иерархии пользовательского интерфейса. (Унаследовано от 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 |
Возвращает ссылку на родительский элемент управления серверного элемента управления в иерархии элементов управления страницы. (Унаследовано от Control) |
RenderingCompatibility |
Возвращает значение, которое задает версию ASP.NET, с которой совместим созданный HTML. (Унаследовано от Control) |
Site |
Возвращает сведения о контейнере, который содержит текущий элемент управления при визуализации на поверхности конструктора. (Унаследовано от Control) |
SkinID |
Возвращает или задает обложку, применяемую к элементу управления. (Унаследовано от Control) |
TargetControlID |
Получает или задает идентификатор элемента управления IDataSource, используемый для запроса. |
TemplateControl |
Возвращает или задает ссылку на шаблон, содержащий этот элемент управления. (Унаследовано от Control) |
TemplateSourceDirectory |
Возвращает виртуальный каталог Page или UserControl, содержащий текущий серверный элемент управления. (Унаследовано от Control) |
UniqueID |
Возвращает уникальный идентификатор серверного элемента управления в иерархии. (Унаследовано от Control) |
ValidateRequestMode |
Возвращает или задает значение, указывающее, проверяет ли элемент управления полученный из браузера клиентский ввод на предмет потенциально опасных значений. (Унаследовано от Control) |
ViewState |
Возвращает словарь сведений о состоянии, позволяющих сохранять и восстанавливать состояние представления серверного элемента управления при нескольких запросах одной и той же страницы. (Унаследовано от Control) |
ViewStateIgnoresCase |
Возвращает значение, указывающее, является ли объект StateBag нечувствительным к регистру. (Унаследовано от Control) |
ViewStateMode |
Возвращает или задает режим состояния представления данного элемента управления. (Унаследовано от Control) |
Visible |
Получает или задает значение, указывающее, отрисовывается ли серверный элемент управления как пользовательский интерфейс на странице. (Унаследовано от Control) |
Методы
AddedControl(Control, Int32) |
Вызывается после добавления дочернего элемента управления в коллекцию Controls объекта Control. (Унаследовано от Control) |
AddParsedSubObject(Object) |
Уведомляет серверный элемент управления, что элемент XML или HTML был проанализирован, и добавляет элемент в серверный элемент управления объекта ControlCollection. (Унаследовано от Control) |
ApplyStyleSheetSkin(Page) |
Применяет свойства стиля, определенные в таблице стилей страницы, к элементу управления. (Унаследовано от Control) |
BeginRenderTracing(TextWriter, Object) |
Запускает трассировку во время разработки данных отрисовки. (Унаследовано от Control) |
BuildProfileTree(String, Boolean) |
Собирает сведения о серверном элементе управления и доставляет их свойству Trace, которое отображается при включенной на странице трассировке. (Унаследовано от Control) |
ClearCachedClientID() |
Задает для кэшированного свойства ClientID значение |
ClearChildControlState() |
Удаляет сведения о состоянии элемента управления для дочерних элементов управления серверного элемента управления. (Унаследовано от Control) |
ClearChildState() |
Удаляет сведения о состоянии элемента управления и состоянии представления для всех дочерних элементов серверного элемента управления. (Унаследовано от Control) |
ClearChildViewState() |
Удаляет сведения о состоянии представления для всех дочерних элементов серверного элемента управления. (Унаследовано от Control) |
ClearEffectiveClientIDMode() |
Задает для свойства ClientIDMode текущего экземпляра элемента управления и любых его дочерних элементов управления значение Inherit. (Унаследовано от Control) |
CreateChildControls() |
Вызывается платформой страницы ASP.NET для уведомления серверных элементов управления, использующих составную реализацию, о необходимости создания дочерних элементов управления, содержащихся в них для обратной передачи или отрисовки. (Унаследовано от Control) |
CreateControlCollection() |
Создает новый объект ControlCollection для хранения дочерних элементов управления (литеральных и серверных) серверного элемента управления. (Унаследовано от Control) |
DataBind() |
Привязывает источник данных к вызываемому серверному элементу управления и всем его дочерним элементам управления. (Унаследовано от Control) |
DataBind(Boolean) |
Привязывает источник данных к вызванному серверному элементу управления и всем его дочерними элементами управления с возможностью вызова события DataBinding. (Унаследовано от Control) |
DataBindChildren() |
Привязывает источник данных к дочерним элементам управления серверного элемента управления. (Унаследовано от Control) |
Dispose() |
Включает серверный элемент управления для выполнения окончательной чистки до освобождения памяти. (Унаследовано от Control) |
EndRenderTracing(TextWriter, Object) |
Завершает трассировку во время разработки данных отрисовки. (Унаследовано от Control) |
EnsureChildControls() |
Определяет наличие у серверного элемента управления дочерних элементов управления. Если дочерних элементов управления нет, они будут созданы. (Унаследовано от Control) |
EnsureID() |
Создает идентификатор для элементов управления, которые не имеют назначенного идентификатора. (Унаследовано от Control) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
FindControl(String) |
Выполняет поиск серверного элемента управления с заданным параметром |
FindControl(String, Int32) |
Выполняет поиск в текущем контейнере именования серверного элемента управления с указанным |
Focus() |
Задает фокус ввода на элемент управления. (Унаследовано от Control) |
GetDesignModeState() |
Возвращает данные времени разработки для элемента управления. (Унаследовано от Control) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetRouteUrl(Object) |
Возвращает URL-адрес, соответствующий набору параметров маршрута. (Унаследовано от Control) |
GetRouteUrl(RouteValueDictionary) |
Возвращает URL-адрес, соответствующий набору параметров маршрута. (Унаследовано от Control) |
GetRouteUrl(String, Object) |
Возвращает URL-адрес, соответствующий набору параметров маршрута и имени маршрута. (Унаследовано от Control) |
GetRouteUrl(String, RouteValueDictionary) |
Возвращает URL-адрес, соответствующий набору параметров маршрута и имени маршрута. (Унаследовано от Control) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
GetUniqueIDRelativeTo(Control) |
Возвращает часть с префиксом свойства UniqueID указанного элемента управления. (Унаследовано от Control) |
HasControls() |
Определяет наличие у серверного элемента управления дочерних элементов управления. (Унаследовано от Control) |
HasEvents() |
Возвращает значение, указывающее, регистрируются ли события для элемента управления или каких-либо дочерних элементов управления. (Унаследовано от Control) |
IsLiteralContent() |
Определяет наличие у серверного элемента управления только текстового содержимого. (Унаследовано от Control) |
LoadControlState(Object) |
Восстанавливает сведения о состоянии элемента управления предыдущего запроса страницы, сохраненные методом SaveControlState(). (Унаследовано от Control) |
LoadViewState(Object) |
Загружает в элемент управления QueryExtender состояние значений, которые необходимо сохранить. |
MapPathSecure(String) |
Извлекает физический путь, к которому ведет виртуальный путь (абсолютный или относительный). (Унаследовано от Control) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
OnBubbleEvent(Object, EventArgs) |
Определяет, передается ли событие серверного элемента управления вверх по иерархии серверных элементов управления пользовательского интерфейса страницы. (Унаследовано от Control) |
OnDataBinding(EventArgs) |
Вызывает событие DataBinding. (Унаследовано от Control) |
OnInit(EventArgs) |
Происходит при инициализации нового экземпляра класса QueryExtender. |
OnLoad(EventArgs) |
Вызывает событие Load. (Унаследовано от Control) |
OnPreRender(EventArgs) |
Вызывает событие PreRender. (Унаследовано от Control) |
OnUnload(EventArgs) |
Вызывает событие Unload. (Унаследовано от Control) |
OpenFile(String) |
Возвращает Stream, используемое для чтения файла. (Унаследовано от Control) |
RaiseBubbleEvent(Object, EventArgs) |
Присваивает родительскому элементу управления все источники события и сведения о них. (Унаследовано от Control) |
RemovedControl(Control) |
Вызывается после удаления дочернего элемента управления из коллекции Controls объекта Control. (Унаследовано от Control) |
Render(HtmlTextWriter) |
Отправляет содержимое серверного элемента управления в предоставленный объект HtmlTextWriter, который записывает содержимое для отрисовки в клиенте. (Унаследовано от Control) |
RenderChildren(HtmlTextWriter) |
Выводит содержимое дочерних элементов серверного элемента управления в предоставленный объект HtmlTextWriter, который записывает это содержимое для подготовки к просмотру на клиенте. (Унаследовано от Control) |
RenderControl(HtmlTextWriter) |
Выводит содержимое серверного элемента управления в указанный объект HtmlTextWriter и сохраняет сведения о трассировке элемента управления, если трассировка включена. (Унаследовано от Control) |
RenderControl(HtmlTextWriter, ControlAdapter) |
Выводит серверный элемент управления в указанный объект HtmlTextWriter, используя указанный объект ControlAdapter. (Унаследовано от Control) |
ResolveAdapter() |
Возвращает адаптер элемента управления, отвечающий за отрисовку определенного элемента управления. (Унаследовано от Control) |
ResolveClientUrl(String) |
Возвращает URL-адрес, который может использоваться браузером. (Унаследовано от Control) |
ResolveUrl(String) |
Преобразует URL-адрес в адрес, доступный для клиента. (Унаследовано от Control) |
SaveControlState() |
Сохраняет любые изменения состояния серверного элемента управления, произошедшие после отправки страницы обратно на сервер. (Унаследовано от Control) |
SaveViewState() |
Сохраняет текущее состояние представления элемента управления QueryExtender. |
SetDesignModeState(IDictionary) |
Задает данные времени разработки для элемента управления. (Унаследовано от Control) |
SetRenderMethodDelegate(RenderMethod) |
Назначает делегата обработчика событий для преобразования серверного элемента управления и его содержимого для просмотра в родительский элемент управления. (Унаследовано от Control) |
SetTraceData(Object, Object) |
Задает данные трассировки для трассировки данных отрисовки во время разработки, используя ключ данных трассировки и значение данных трассировки. (Унаследовано от Control) |
SetTraceData(Object, Object, Object) |
Задает данные трассировки для трассировки данных отрисовки во время разработки, используя трассируемый объект, ключ данных трассировки и значение данных трассировки. (Унаследовано от Control) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
TrackViewState() |
Отслеживает изменения состояния просмотра элемента управления QueryExtender, позволяя сохранять их в объекте StateBag для этого элемента управления. |
События
DataBinding |
Происходит при привязке серверного элемента управления к источнику данных. (Унаследовано от Control) |
Disposed |
Происходит при освобождении памяти, занятой серверным элементом управления, т.е. на последнем этапе жизненного цикла серверного элемента управления при запросе страницы ASP.NET. (Унаследовано от Control) |
Init |
Происходит при инициализации серверного элемента управления, который находится на первом этапе его жизненного цикла. (Унаследовано от Control) |
Load |
Происходит при загрузке серверного элемента управления в объект Page. (Унаследовано от Control) |
PreRender |
Происходит после загрузки объекта Control, но перед отрисовкой. (Унаследовано от Control) |
Unload |
Происходит при выгрузке серверного элемента управления из памяти. (Унаследовано от Control) |
Явные реализации интерфейса
Методы расширения
FindDataSourceControl(Control) |
Возвращает источник данных, связанный с элементом управления данными, для заданного элемента управления. |
FindFieldTemplate(Control, String) |
Возвращает шаблон поля для заданного столбца в контейнере именования заданного элемента управления. |
FindMetaTable(Control) |
Возвращает объект метатаблицы для контейнерного элемента управления данными. |