2010-11-29 15 views
0

Ich bin etwas neu in Asp.net GridView, und ich bin mit dem folgenden Problem konfrontiert. Ich habe eine Gridview in einem Ascx platziert. Dieser Ascx wird dynamisch in einem aspx in seiner Page_Init-Methode geladen. Control control = LoadControl ("~/grid.ascx"); PlaceHolder1.Controls.Add (Kontrolle);GridView in asp.net

Das Raster ist an eine IList gebunden (die von der Datenzugriffsebene aus belegt ist). Ich habe ein Schaltflächenfeld im Raster, mit dem die Löschfunktion in der DA-Ebene für die Zeile aufgerufen wird (führt diesen Aufruf in GridView1_RowCommand() aus).

Meine Frage ist, ich sehe nicht, dass die Rasteransicht aktualisiert wird, nachdem ich das Löschen durchgeführt habe. Ich habe den Code zum erneuten Lesen und Binden von Daten an Gridview an vielen Stellen platziert, aber keiner scheint zu funktionieren.

Hinweise: 1. Das Laden von ascx in einer Ajax-Aufruf für die aspx erfolgt 2. Delete Funktion ändert tatsächlich die Spalte ‚Status‘ der ‚Benutzer‘ zu ‚Gelöscht‘, die ich brauche, in der Gridview zu sehen nachdem ich dies getan habe

Können Sie mir bitte helfen?

Bearbeiten: Es scheint, dass RowDataBound-Ereignis ausgelöst wird (für jede Zeile natürlich) nach dem Laden der Seite, und dann nur die Schaltfläche Befehl Ereignis ausgelöst. Obwohl ich den modifizierten DS und DataBind in der Gridview gesetzt habe, wird der RowDataBound danach nie ausgelöst. Irgendeine Idee warum? Vielen Dank im Voraus.

Anuruddha

Antwort

0

Sie müssen das Raster in GridView1_RowCommand() mit der neuen Datenquelle erneut für die Antwort

+0

Dank Ali erneut zu binden. Dies funktioniert in einem Beispieltest, den ich gemacht habe, aber nicht in der Anwendung, an der ich arbeite. Ich frage mich, was der Unterschied ist. Es scheint, dass egal, was ich in der Datenquelle ändere, die Gridview das gleiche anzeigt. Scheint, dass es die Werte von viewstate nimmt. Frage mich, was der Fehler ist :( – Anuruddha

+0

vielleicht ein Caching-Problem? –