2012-04-13 5 views
0

Ich habe ein Szenario, wo ich vier identische Gridviews auf der gleichen Seite setzen möchte. (Sie befinden sich auf verschiedenen Registerkarten in einem Ajax TabControl.) Sie zeigen die gleichen Quelldaten, aber es gibt vier entsprechende Gruppen von Quelldaten in einer gemeinsamen zugrunde liegenden Tabelle. Daher möchte ich Gruppe 1 auf Tab 1, Gruppe 2 auf Tab 2 usw. anzeigen. Diese Gridviews enthalten komplizierte Steuerelemente. Daher würde ich für alle die gleiche Datenquelle verwenden, um unnötige Wiederholungen zu vermeiden. Die Befehle Einfügen und Aktualisieren sind vollständig identisch.Ist es möglich, eine SQLDataSource mit einem Parameter zu haben, der nur auf dem GridView basiert, das daran gebunden ist?

In der Theorie könnte ich den Select-Befehl so erstellen, dass ich die Daten basierend auf der GridView, die an die SQLDataSource Bindung ist, filtern konnte. Das Problem ist, dass, wenn ich die gleiche SQLDataSource für alle Gridviews verwende, ich keinen Weg finden kann, dass jedes GridView der SQLDataSource mitteilt, welche es aufruft. Ich denke, das ist vielleicht nicht möglich, weil die SQLDataSource zuerst bindet, bevor sie weiß, was für sie verbindlich ist, aber ich bin mir nicht sicher. Kann jemand einen Weg finden, dies zu tun?

+0

Ich denke, dass dies mit einfachen funktionieren kann, haben unterschiedliche SqlDataSource. – Aristos

Antwort

0

Sie können den Parameterwert dynamisch mithilfe des OnSelecting-Ereignisses von SQLDataSource ändern. Dies kann im serverseitigen Code erfolgen.

Erstellen Sie eine Eigenschaft, die Ihren aktuellen eindeutigen Schlüssel für gridview enthält, wodurch SQLDataSource Daten von der SQL-Datenbank abruft.

Weisen Sie dieser Eigenschaft einen eindeutigen gridview-Schlüssel für das DataBinding-Ereignis von gridview zu.

Basierend auf dieser Eigenschaft ändern Sie den Parameter im OnSelecting-Ereignis von SQLDataSource.

Lassen Sie mich wissen, wenn ich etwas vermisse.

Verwandte Themen