Динамические данные ASP.NET Добавить дополнительные критерии фильтра на страницу - PullRequest
8 голосов
/ 09 апреля 2009

Как добавить дополнительные критерии поиска / фильтрации в веб-приложение с динамическими данными?

Я создал веб-приложение с динамическими данными, используя базу данных Northwind, и использую пользовательскую страницу для таблицы «Сотрудники» (на основе шаблона страницы ListDetails.aspx). Я хотел бы добавить дополнительные параметры поиска / фильтра / где на странице. По умолчанию коллекция параметров where создается динамически на основе элемента управления FilterRepeater, который также создается динамически на основе отношений «внешний ключ», которые есть у таблицы Employee.

Пытаясь добавить дополнительные критерии поиска, я подключился к событию Selecting в LinqDataSource GridView и пытаюсь добавить дополнительные элементы в коллекцию WhereParameters из LinqDataSourceSelectEventArgs.

Проблема в том, что я не могу указать, какой тип сравнения необходимо выполнить. Коллекция WhereParameters принимает только строку и объект, но не сравнивает их. То, что я действительно хотел бы сделать, это добавить в коллекцию делегатов предикатов ...

Как мне добавить дополнительные критерии поиска на эту страницу? Через атрибуты, применяемые к сущности LINQ To SQL (если да, то как)? Что если критерии / критерии не основаны на самой сущности, как бы я добавил в критерии поиска в этом случае?

Аарон Хоффман

Ответы [ 2 ]

7 голосов
/ 09 апреля 2009

Если вы хотите добавить свои собственные критерии в приложение, которое не будет автоматически предоставлено вам DD, вам придется перейти на DynamicDataFiltering , чтобы сделать это. Сам DynamicData в настоящее время не поддерживает пользовательские фильтры и поиск. Это не сложно реализовать. Джош Хейес отлично поработал над этим.

Вернись, если это не совсем то, что ты ищешь

EDIT: Кроме того, если вы просто собираетесь выполнить дополнительную фильтрацию отображаемых данных, вы можете написать что-то вроде этого, возможно, в Page_Init без проекта фильтрации Джоша:

GridDataSource.WhereParameters.Add(new Parameter("it.myColumn", TypeCode.Int32, myValue));

Выполнение «в» или «содержит» немного сложнее, и потребует DynamicDataFiltering.

6 голосов
/ 29 июля 2010
...