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 A
SPX-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
VIEW
STATE 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.