View State

Eintrag zuletzt aktualisiert am: 07.03.2004

Repräsentation der Zustände der Server Controls in einem ASP.NET-Webform.

In Bezug auf eine einzelne Webseite wird unter Zustand die Einstellung bzw. Auswahl jedes Steuerelements verstanden, z.B. ein eingegebener Text in einem Texteingabefeld oder die ausgewählten Elemente in einem Listenfeld. Aber auch Layout-Eigenschaften wie Farbe und Schriftart.

Bei einem Neu-Aufruf einer Seite per Postback werden nur die Inhalte der Eingabesteuerelemente übertragen. Alle anderen Eigenschaften sowie die Eigenschaften aller Seitenbestandteile, die kein Eingabesteuerelement sind (z.B. Beschriftungen) werden nicht mit übertragen. Bei jedem Roundtrip stehen alle Attribute aller Steuerelemente zunächst wieder auf ihren in der ASPX-Seite hinterlegten Initialwerten. Wenn zwischendurch Werte von Att-ributen verändert wurden, müsste diese Veränderung bei jedem Roundtrip erneut ausgeführt werden.

Diese lästige Aufgabe nimmt die Seiten-Zustandsverwaltung (View State-Mechanismus) dem Entwickler ab.

Der View State-Mechanismus ermöglicht das Speichern des aktuellen Zu-stands der Seite mit allen Steuerelementen über den Selbstaufruf einer Seite hinweg. Zu den von dem View State-Mechanismus erfassten Steuerelementen gehört nicht nur der Inhalt der Steuerelementen sondern auch deren optische Gestaltung (Farben, Schriftarten, etc) sowie die sonstigen Attribute.
Wird eine Seite an den Webserver und wieder zurück geschickt, so gewährleistet dieser Mechanismus, dass alle Steuerelemente bei der direkten erneu-ten Erzeugung derselben Seite den gleichen Zustand haben wie vor der Ver-arbeitung. Dazu werden die Inhalte aller gesetzten Attribute der Steuerele-mente zum Zeitpunkt der Verarbeitung in ein verstecktes Textfeld namens VIEWSTATE geschrieben. Wenn die Seite wieder zurückgeschickt wird, dann wird zur Initialisierungszeit der Seite dieser Wert ausgelesen und zur Initialisierung der einzelnen Steuerelemente verwendet. Außerdem dient der View State dazu festzustellen, welche Steuerelement-Inhalte sich seit dem letzten Aufruf geändert haben. Auf Basis dieser Information werden die ent-sprechenden Änderungsereignisse für die einzelnen Steuerelemente gesteuert. Weitere technische Details zur Wiederherstellung der Steuerelementinhalte befinden sich im Abschnitt "Das Entstehen einer Seite – inside ASP.NET" in diesem Kapitel.