2009-04-09 3 views
8

Как я могу добавить дополнительные критерии поиска/фильтра в веб-приложение Dynamic Data?Динамические данные ASP.NET Добавить дополнительные критерии фильтра на страницу

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

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

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

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

Aaron Hoffman

+0

в дополнение к ниже ответ, форумы DD, хотя медленно загружаться, примерно лучший источник информации о DD там прямо сейчас, к сожалению, – jlembke

ответ

7

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

Возвращайся, если это не совсем то, что вы ищете

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

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

Doing «в» или «содержит» является немного более сложным, чем это, и требует DynamicDataFiltering.

+0

Я пробовал следовать указаниям Джоша о преобразовании LinqDataSource в DynamicLinqDataSource, но я никогда не получаю действие, поскольку он сказал, что «вызванный источник UpgradeData появляется в всплывающем окне« Действие ». Вы обнаружили, что это так? –

+0

Я считаю, что сделал. Я бы посоветовал попросить Джоша о кодексе. – jlembke

+0

@jlembke, я пока буду в состоянии обойти это? –

 Смежные вопросы

  • Нет связанных вопросов^_^