Ändern von Daten in einem GridView-Webserversteuerelement

Aktualisiert: November 2007

Das GridView-Steuerelement enthält integrierte Funktionen, mit denen Benutzer Datensätze schreiben oder löschen können, ohne dass eine Programmierung erforderlich ist. Sie können die Bearbeitungs- und Löschfunktionen des GridView-Steuerelements mithilfe von Ereignissen und Vorlagen anpassen.

Aktivieren der integrierten Bearbeitungsfunktionalität

Sie können die integrierten Bearbeitungs- und Löschfunktionen des GridView-Steuerelements auf eine der folgenden Weisen aktivieren:

Arbeitsweise der Bearbeitung im GridView-Steuerelement

Das GridView-Steuerelement kann eine Benutzeroberfläche anzeigen, über die Benutzer die Inhalte einzelner Zeilen bearbeiten können. In der Regel enthält ein bearbeitbares Datenblatt eine Spalte mit einer Schaltfläche oder einem Hyperlink. Sobald Benutzer darauf klicken, wird die Zeile in den Bearbeitungsmodus versetzt. (Standardmäßig lautet die Schaltflächenbeschriftung "Bearbeiten".)

Speichern Benutzer eine Änderung, werden die Änderungsinformationen sowie die Primärschlüsselinformationen vom GridView-Steuerelement an das Datenquellensteuerelement übergeben. Die DataSourceID-Eigenschaft kennzeichnet die Datenquelle und ruft eine entsprechende Aktualisierungsoperation auf. Das SqlDataSource-Steuerelement führt beispielsweise eine SQL Update-Anweisung aus, wobei es die geänderten Daten als Parameterwerte nutzt. Das ObjectDataSource-Steuerelement ruft seine Update-Methode auf, indem es die Änderungen als Parameter an den Methodenaufruf übergibt.

Bei Aktualisierungs- oder Löschoperationen übergibt das GridView-Steuerelement Werte an die Datenquelle in drei Wörterbuchauflistungen: dem Keys -Wörterbuch, dem NewValues-Wörterbuch und dem OldValues-Wörterbuch. Sie können über Argumente, die an die Aktualisierungs- oder Löschereignisse des GridView-Steuerelements übergeben wurden, auf jedes Wörterbuch zugreifen.

Das Keys-Wörterbuch enthält die Namen und Werte der Felder, die den zu aktualisierenden oder zu löschenden Datensatz eindeutig kennzeichnen. Außerdem enthält es immer die ursprünglichen Werte des Schlüsselfelds vor Bearbeitung des Datensatzes. Die Felder, die in das Keys-Wörterbuch einzufügen sind, bestimmen Sie über das Festlegen der DataKeyNames-Eigenschaft auf eine durch Trennzeichen getrennte Liste mit Feldnamen. Diese Liste stellt den Primärschlüssel der Daten dar. Die DataKeys-Auflistung wird automatisch mit Werten gefüllt, die den auf die DataKeyNames-Eigenschaft festgelegten Feldern zugeordnet sind.

Hinweis:

Die ursprünglichen Primärschlüsselwerte für die in der DataKeyNames-Eigenschaft angegebenen Felder werden im Ansichtszustand gespeichert. Enthalten die Primärschlüsselwerte vertrauliche Informationen, sind die Inhalte des Ansichtszustands der Seite zu verschlüsseln. Legen Sie dazu die ViewStateEncryptionMode-Eigenschaft der Seite auf Always fest.

Das NewValues-Wörterbuch enthält in der bearbeiteten Zeile die aktuellen Werte aus den Eingabesteuerelementen. Das OldValues-Wörterbuch enthält alle ursprünglichen Werte der Felder, mit Ausnahme der Schlüsselfelder. Diese sind im Keys-Wörterbuch enthalten.

Das Datenquellensteuerelement nutzt die Werte aus dem Keys-Wörterbuch, dem NewValues-Wörterbuch und dem OldValues-Wörterbuch als Parameter für die Befehle Aktualisieren oder Löschen. Informationen zum Erstellen von Parametern für Datenquellensteuerelemente auf Grundlage der für gebundene Werte erstellten Wörterbücher finden Sie unter Erstellen von Parametern für datengebundene Felder durch ein Datenquellensteuerelement.

Sie können die Inhalte jedes Wörterbuchs untersuchen oder anpassen, bevor diese durch Bearbeitung des RowUpdating-Ereignisses oder des RowDeleting-Ereignisses an die Datenquelle übergeben werden. Nachdem die Aktualisierung oder Löschung abgeschlossen ist, löst das GridView-Steuerelement das RowUpdated-Ereignis oder das RowDeleted-Ereignis aus. Mit diesen Ereignissen können Sie eine Postabfragelogik durchführen, z. B. Integritätsprüfungen.

Nachdem der Aktualisierungs- oder Löschvorgang abgeschlossen wurde und alle Ereignisse ausgelöst wurden, wird das GridView-Steuerelement erneut an das Datenquellensteuerelement gebunden, um die aktualisierten Daten anzuzeigen.

Hinweis:

Die ursprünglichen Werte für aktualisierbare Felder in einem GridView-Steuerelement werden in ViewState gespeichert. Wenn ViewState auf einer ASP.NET-Seite deaktiviert ist, die ein aktualisierbares GridView-Steuerelement enthält, können die ursprünglichen Werte für aktualisierbare Felder und Primärschlüsselfelder, die bei der ersten Bindung des GridView-Steuerelements an die Datenquelle abgerufen wurden, nicht für Überprüfungen auf vollständige Parallelität verwendet werden. Wenn die Seite zurückgesendet wird, um einen Aktualisierungs- oder Löschvorgang auszuführen, werden aktuelle Werte aus der Datenbank als die ursprünglichen Werte für die aktualisierbaren Felder und Primärschlüsselfelder im GridView-Steuerelement abgerufen, weil in ViewState keine Werte gespeichert sind. Der Aktualisierungs- oder Löschvorgang wird dann mit den ursprünglichen Werten ausgeführt. Wenn die ursprünglichen Werte seit dem ersten Auffüllen des GridView-Steuerelements geändert wurden, wird der Aktualisierungs- oder Löschvorgang erfolgreich ausgeführt, doch bei der Überprüfung auf vollständige Parallelität wird entgegen der Erwartung kein Fehler gemeldet.

Anpassen der Bearbeitungsbenutzeroberflächen im GridView-Steuerelement

Sie können die Bearbeitungselemente für die Benutzeroberfläche anpassen (z. B. den Steuerelementtyp, der im Bearbeitungsmodus für jedes Datenfeld angezeigt wird). Mit der automatischen bidirektionalen Datenbindung können die benutzerdefinierten Steuerelemente bearbeitbare und bearbeitete Werte in beide Richtungen bereitstellen, d. h. sowohl aus dem Datenspeicher abrufen als auch dort ablegen.

Hinweis:

Wenn Sie die Update-Anweisung in einem Datenquellensteuerelement ändern oder die Spalten im GridView-Steuerelement neu anordnen möchten, müssen Sie immer überprüfen, dass die Werte, die das GridView-Steuerelement an die Datenquelle übergibt, mit der entsprechenden Datenquellenkonfiguration übereinstimmen.

Siehe auch

Konzepte

Übersicht über Datenquellensteuerelemente

Referenz

Übersicht über das GridView-Webserversteuerelement