2009-03-19 4 views
1

Ich habe eine Gridview, die an ein Object gebunden ist, und ich bin Umgang mit der vollen Reihe wählt die Standardlösung mit provdided alle über diese Zeile in der OnRowDataBound des Setzens():ASP.NET 3.5.1 GridView im Update-Panel requerying in Zeile auswählen?

e.Row.Attributes["onclick"] = this.Page.ClientScript.GetPostBackEventReference(this, "Select$" + e.Row.RowIndex); 

All dies funktioniert Ich merke, dass meine ObjectDataSource bei jeder Änderung der Zeilenauswahl getroffen wird. Ich mache keine BindData() irgendwo in dem Zeilenauswahl-Code hinter, und da sich die Daten als Ergebnis der Auswahl nicht ändern, sehe ich wirklich nicht, warum das Gitter erneut binden muss. Ich lasse die Gridview mit Paging und Sortierung umgehen, aber wiederum ändert die Auswahl den Inhalt nicht, daher glaube ich nicht, dass dies Auswirkungen haben sollte.

Ich habe versucht, den Ansichtszustand für das Raster einzuschalten (sehr kleine Datenmenge) und es hatte keine Wirkung. Ich setze das UpdatePanel auf bedingte Updates und Kinder als Auslöser = falsch, aber das verursachte, dass die Daten noch abgefragt wurden, aber keine Aktualisierung auf dem Bildschirm (LOL!).

Irgendwelche GridView-Gurus da draußen wollen einen erstechen?

Antwort

1

Vermissen Sie die folgenden in Ihrem Page_Load():

If (!IsPostBack) 
{ 

} 

Dies wird etwas vermissen Entwickler viel! Folgen Sie Ihren Ereignissen und Sie werden wahrscheinlich sehen, dass irgendwo ein Ereignis OnPostBack ausgelöst wird und Sie Ihren DB-Code aufrufen.

+0

Wie sich herausstellt nein ... aber es hätte mich nicht überraschen können! LOL. Ich denke, ich habe entschieden, dass die Seite viel zu kompliziert ist, um auf ein einfaches Beispiel zu reduzieren, und es funktioniert wie es ist, und ich gebe die Daten nicht im Ansichtszustand auf diese Weise weiter, also habe ich beschlossen, glücklich zu sein. Trotzdem danke! :-) – John