2009-04-09 13 views
8

Jak należy dodać dodatkowe kryteria wyszukiwania/filtrowania do aplikacji sieciowej danych dynamicznych?Dane dynamiczne ASP.NET Dodaj dodatkowe kryteria filtrowania do strony

Utworzono aplikację internetową danych dynamicznych przy użyciu bazy danych Northwind i używam niestandardowej strony dla tabeli Pracownicy (na podstawie szablonu strony ListDetails.aspx). Chciałbym dodać dodatkowe wyszukiwanie/filtr/gdzie parametry do strony. Domyślnie kolekcja parametrów jest dynamicznie tworzona na podstawie formantu FilterRepeater, który jest również dynamicznie tworzony na podstawie zależności "klucz obcy" w tabeli pracowników.

Próbując dodać dodatkowe kryteria wyszukiwania, przywiązałem się do zdarzenia Select of GridView's LinqDataSource i próbuję dodać dodatkowe elementy do kolekcji WhereParameters LinqDataSourceSelectEventArgs.

Problem polega na tym, że nie mogę określić, jakiego typu porównanie należy wykonać. Kolekcja WhereParameters akceptuje tylko ciąg i obiekt, ale nie pozwala na ich porównanie. To, co naprawdę chciałbym móc zrobić, to dodać do zbioru predykatów delegatów ...

Jak mogę dodać dodatkowe kryteria wyszukiwania do tej strony? Poprzez atrybuty zastosowane do jednostki LINQ To SQL (jeśli tak, jak)? Co się stanie, jeśli kryteria/kryterium nie będzie oparte na samym podmiocie, w jaki sposób dodaję do niego kryteria wyszukiwania?

Aaron Hoffman

+0

oprócz poniżej odpowiedź, fora DD, choć powolny, aby załadować, są o najlepszym źródłem informacji na temat DD jest teraz, niestety – jlembke

Odpowiedz

7

Jeśli chcesz dodać własne kryteria do wniosku, że nie jest automatycznie podany przez DD, będziesz musiał udać się do DynamicDataFiltering to zrobić. Sama DynamicData obecnie nie obsługuje niestandardowych filtrów i wyszukiwania. Nie jest trudne do wdrożenia. Josh Heyes wykonał świetną robotę.

Wracaj jeśli to nie całkiem to, czego szukasz

EDIT: Również , jeśli dopiero zamierzają robić pewne dalsze filtrowanie wyświetlanych danych można napisać coś takiego może w Page_Init bez Josha projekt filtrowanie:

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

Doing „in” lub „zawiera” jest trochę bardziej skomplikowana i wymaga DynamicDataFiltering.

+0

Próbowałem podążać za wskazówkami Josh dotyczącymi konwersji LinqDataSource na DynamicLinqDataSource, ale nigdy nie otrzymałem akcji, ponieważ powiedział "o nazwie UpgradeData źródło pojawia się w okienku akcji" Czy uważasz, że tak jest? –

+0

Sądzę, że tak. Proponuję zapytać Josha na codepleksie. – jlembke

+0

@jlembke, ale czy w międzyczasie byłeś w stanie to obejść? –

Powiązane problemy