Thomas Bandt

Über mich | Kontakt | Archiv

[ASP.NET 2.0] GridView nach FormView-Update aktualisieren

Oft hat man, wenn man mit den fertigen ASP.NET-Controls arbeitet, den Fall, dass man Datensätze über ein GridView-Control auswählt und diese dann im FormView-Control bearbeitet. Nun wäre es ja sinnvoll, dass sich die Daten des Datensatzes, die im Grid stehen, nach dem Update im FormView auch aktualisieren, und das neu angelegte Datensätze ebenfalls gleich im Grid auftauchen sowie gelöschte rausfallen.

Das geht von Haus aus nicht, man muss Code schreiben - wenn auch nicht viel. Die Standardmethoden für meine FormView-Controls:

protected void FormView1_OnItemDeleted(object sender, FormViewDeletedEventArgs e)
{
   GridView1.DataBind();
}

protected void FormView1_OnItemInserted(object sender, FormViewInsertedEventArgs e)
{
   GridView1.DataBind();
}

protected void FormView1_OnItemUpdated(object sender, FormViewUpdatedEventArgs e)
{
   GridView1.DataBind();
}

Diese werden dann den entsprechenden Events zugeordnet:

"FormView1
   OnItemDeleted="FormView1_OnItemDeleted" 
   OnItemInserted="FormView1_OnItemInserted" 
   OnItemUpdated="FormView1_OnItemUpdated" 
   runat="server" 
   DataKeyNames="CategoryId" 
   DataSourceID="SqlDataSource2">

Wichtig ist die Events zu wählen, zu denen die jeweiligen Aktionen bereits gelaufen sind - also "Updated" anstatt "Updating" usw. Denn erst dann kann das erneute Binden der Daten ans GridView richtig greifen, vorher sind die neuen Daten ja noch nicht verfügbar. Danke an Alex für den Hinweis ;-).



« Zurück  |  Weiter »