DevExpress AspxGridView filter in ObjectDataSource
Noch ein anderes problem mit DevExpress AspxGridView 🙂
Kontext:
- Eine Seite
- In die Seite, ein custom control
- In das benutzerdefinierte Steuerelement, ein AspxDropDown
- Die
AspxDropDown
hat eineDropDownWindowTemplate
- In der
DropDownItemTemplate
, füge ich einGridView
und ein paging/Sortierung/Filterung aktiviertObjectDataSource
- Beim Umgang mit den Auswahl-Ereignis des
ObjectDataSource
sollte ich filter setzen Parameter für die Datenquelle. Gibt es filter-Parameter sollte von derFilterRow
desAspxGridView
(vorzugsweise mit derAspxGridView.FilterExpression
Eigenschaft).
Das problem: die AspxGridView.FilterExpression
Eigenschaft ist nicht auf die richtigen Werte (durch den Benutzer).
Hast jemand finden, der eine gute Umsetzung von dem, was ich versuche zu tun?
Dank einem Haufen.
🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe es endlich geschafft zu bekommen, um das problem.
Nicht eine gute Lösung, aber immer noch einen Weg, das zu umgehen.
So.. Die "Lösung" ist die databind-raster auf jede AfterPerformCallback Veranstaltung.
Als ich gesagt habe, es ist keine gute Lösung.
Antwort pro DevExpress ist, dass die richtige FilterExpression wird aktualisiert, wenn es Datenbindung.
Sie behaupten, dass es in BeforePerformDataSelect, sehen Sie den korrekten Wert ein.
Habe ich 1 raster, das angeschlossen wird, bis zu einer SqlDataSource-das ist korrekt, dies zu tun, und ein anderes ist das nicht... du bist Also die Laufleistung kann variieren.
Meinem zweiten Gitter war nicht das befolgen dieses Prinzip, so integrierte ich den anderen Kerl Konzept rebinding in AfterPerformCallback(). Der trick ist, um zu verhindern, dass doppelte Abfragen. Dieser code zeigt auch, wie hijack devexpress, erstellen Sie Ihre eigenen SQL. Natürlich, das ist von meinem Projekt arbeiten, so verwenden Sie Ihre Phantasie auf Funktionen, die ich habe, dass Sie nicht...
Hier ist der entsprechende html-und code:
Und hier ist der event-handler für BeforePerformDataSelect:
private bool _DataBindingCompleted = false;