2009-04-09 7 views
8

Wie sollte ich einer Dynamic Data-Webanwendung zusätzliche Such-/Filterkriterien hinzufügen?Dynamische ASP.NET-Daten Zusätzliche Filterkriterien zur Seite hinzufügen

Ich erstellte eine dynamische Datenwebanwendung mithilfe der Northwind-Datenbank, und ich verwende eine benutzerdefinierte Seite für die Employees-Tabelle (basierend auf der ListDetails.aspx-Seitenvorlage). Ich möchte zusätzliche Such/Filter/Wo Parameter zur Seite hinzufügen. Standardmäßig wird die Sammlung von Wo-Parametern dynamisch basierend auf dem FilterRepeater-Steuerelement erstellt, das basierend auf den "Fremdschlüssel" -Beziehungen der Employee-Tabelle ebenfalls dynamisch erstellt wird.

Beim Versuch, weitere Suchkriterien hinzuzufügen, habe ich mich an das Selecting-Ereignis der LinqDataSource von GridView gebunden und versuche, der WhereParameters-Auflistung von LinqDataSourceSelectEventArgs weitere Elemente hinzuzufügen.

Das Problem ist, ich kann nicht angeben, welche Art von Vergleich durchgeführt werden muss. Die WhereParameters-Auflistung akzeptiert nur eine Zeichenfolge und ein Objekt, nicht jedoch, wie sie verglichen werden. Was ich wirklich gerne tun könnte, ist, zu einer Sammlung von Prädikatdelegaten hinzuzufügen ...

Wie sollte ich zusätzliche Suchkriterien zu dieser Seite hinzufügen? Über Attribute, die auf die Entität LINQ To SQL angewendet werden (wenn ja, wie)? Was wäre, wenn das Kriterium/Kriterium nicht auf der Entität selbst basiert, wie würde ich dann die Suchkriterien hinzufügen?

Aaron Hoffman

+0

neben der Antwort unten, die DD-Foren, obwohl langsam zu laden, sind über die beste Quelle für Informationen über DD dort jetzt ist leider – jlembke

Antwort

7

Wenn Sie Ihre eigenen Kriterien für die Anwendung hinzuzufügen, die nicht automatisch zu Ihnen durch DD gegeben ist, werden Sie zu DynamicDataFiltering gehen müssen, das zu tun. DynamicData selbst unterstützt derzeit keine benutzerdefinierten Filter und Suchvorgänge. Es ist nicht schwer zu implementieren. Josh Heyes hat einen tollen Job gemacht.

Kommen Sie zurück, wenn das nicht ganz das, was Sie suchen

EDIT: Auch, wenn Sie nur auf beabsichtigen, eine weitere Filterung der angezeigten Daten tun Sie so etwas wie dies vielleicht in der Page_Init ohne Joshs schreiben konnte Filterprojekt:

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

Doing „in“ oder „enthält“ ist ein wenig komplizierter als das, und würde DynamicDataFiltering erfordern.

+0

Ich habe versucht, Joshs Anweisungen zum Konvertieren von LinqDataSource in eine DynamicLinqDataSource zu folgen, aber ich bekomme nie eine Aktion, da er sagte: "Aufgerufene UpgradeData-Quelle erscheint im Action-Popup" Haben Sie das gefunden? –

+0

Ich glaube, ich habe es getan. Ich würde vorschlagen, Josh auf Codeplex zu fragen. – jlembke

+0

@jlembke, werde ich aber in der Zwischenzeit, warst du in der Lage es zu umgehen? –