Общие сведения об элементе управления веб-сервером QueryExtender
Элемент управления QueryExtender служит для создания фильтров для данных, получаемых из источника данных, без использования явного предложения Where в источнике данных. Этот элемент управления может использоваться для фильтрации данных в разметке веб-страницы с помощью декларативного синтаксиса.
Фон
Фильтрация исключает данные из источника данных путем отображения только записей, соответствующих заданным условиям. Фильтрация позволяет создавать различные представления данных, входящих в состав набора данных, не воздействуя на сами данные в наборе данных.
Обычно для фильтрации требуется создавать предложения "Where", которые применяются к команде, опрашивающей источник данных. Вместе с тем свойство Where элемента управления LinqDataSource не раскрывает все функциональные возможности, заключенные в LINQ.
Для облегчения фильтрации данных в ASP.NET реализован элемент управления QueryExtender, который может использоваться совместно с источником данных для фильтрации данных с помощью декларативного синтаксиса. Использование элемента управления QueryExtender дает следующие преимущества:
Позволяет применять более развернутые выражения для фильтрации, нежели написание предложения Where.
Предоставляет общий язык запросов для элементов управления LinqDataSource и EntityDataSource. Например, если с этими элементами управления источником данных используется QueryExtender, можно обеспечить возможность поиска на веб-странице без написания зависящего от модели предложения "Where" или оператора "eSQL".
Может использоваться с элементом управления LinqDataSource или EntityDataSource либо с источниками данных сторонних разработчиков.
Поддерживает различные параметры фильтрации, которые могут применяться по отдельности или в сочетании.
Параметры фильтрации
Элемент управления QueryExtender поддерживает различные параметры, которые можно использовать для фильтрации данных. Данный элемент управления поддерживает поиск строк, поиск значений в заданном диапазоне, сравнение значения свойства в таблице с указанным значением, сортировку и настраиваемые запросы. Эти параметры реализованы в элементе управления QueryExtender в виде выражений LINQ. Элемент управления QueryExtender также поддерживает выражения, специфические для динамических данных ASP.NET.
SearchExpession
Класс SearchExpression выполняет поиск строковых значений в поле или полях и сравнивает их с заданным строковым значением. Выражение может выполнять поиск "начинается с", "содержит" или "заканчивается на". Например, можно ввести текст в текстовое поле элемента управления и использовать выражение для поиска этого текста в столбцах, возвращенных из элемента управления источником данных.
Примечание
Учет регистра в выражении поиска зависит от поставщика LINQ, который задается в элементе управления QueryExtender.
RangeExpression
Класс RangeExpression подобен классу SearchExpression, но использует пару значений для определения диапазона. Выражение определяет, находится ли значение в столбце между заданными минимальным и максимальным значениями. Например, в столбце цен единиц товаров в таблице можно выполнить поиск значений между 10 и 100 долларами.
PropertyExpression
Класс PropertyExpression сравнивает значение свойства столбца с указанным значением. Например, можно сравнить логическое значение со значением в столбце снятых с производства в таблице "Продукты" в базе данных.
OrderByExpression
Класс OrderByExpression позволяет сортировать данные в заданном столбце и направлении сортировки.
CustomExpression
Класс CustomExpression позволяет вводить пользовательское выражение LINQ, которое можно использовать в элементе управления QueryExtender.
DynamicFilterExpression
Класс DynamicFilterExpression поддерживается только на веб-сайтах на платформе динамических данных ASP.NET. Дополнительные сведения см. в разделе How to: Filter Table Rows Using Values from a Parent Table in Dynamic Data
ControlFilterExpression
Класс ControlFilterExpression поддерживается только на веб-сайтах на платформе динамических данных ASP.NET. Дополнительные сведения см. в разделе How to: Filter Table Rows Using Foreign Key in Dynamic Data
Примеры кода
Пример, как использовать элемент управления QueryExtender, см. в Пошаговое руководство. Фильтрация данных на веб-странице с помощью декларативного синтаксиса.
Справочные сведения о классах
В следующей таблице перечислены важнейшие классы, имеющие отношение к элементу управления QueryExtender.
Выражение |
Описание |
---|---|
Представляет основной класс для элемента управления |
|
Задает определенное пользователем выражение для источника данных. Пользовательское выражение может быть функцией, вызываемой из разметки страницы. |
|
Применяет выражение сортировки к объекту источника данных IQueryable |
|
Создает предложение "Where" на основе указанных параметров в коллекции WhereParameters |
|
Определяет, является ли значение большим или меньшим, нежели указанное значение, или находится ли значение между двумя указанными значениями |
|
Поиск строковых значений в одном или нескольких полях и сравнение их с заданным строковым значением. |
|
Применяет выражение сортировки к объекту источника данных IQueryable после того, как применено выражение OrderByExpression |
|
Создает запрос к базе данных с использованием указанного элемента управления фильтра |
|
Создает запрос к базе данных с использованием ключа данных, выбранного в элементе управления, связанном с исходными данными |
См. также
Задачи
Пошаговое руководство. Фильтрация данных на веб-странице с помощью декларативного синтаксиса