Freigeben über


StateBag-Klasse

Verwaltet den Ansichtszustand von ASP.NET-Serversteuerelementen, einschließlich Seiten. Diese Klasse kann nicht vererbt werden.

Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public NotInheritable Class StateBag
    Implements IStateManager, IDictionary, ICollection, IEnumerable
'Usage
Dim instance As StateBag
public sealed class StateBag : IStateManager, IDictionary, ICollection, 
    IEnumerable
public ref class StateBag sealed : IStateManager, IDictionary, ICollection, 
    IEnumerable
public final class StateBag implements IStateManager, IDictionary, 
    ICollection, IEnumerable
public final class StateBag implements IStateManager, IDictionary, 
    ICollection, IEnumerable

Hinweise

Bei dem Ansichtszustand einer Seite oder eines Steuerelements handelt es sich um die gesammelten Eigenschaftenwerte bzw. um die Ansicht der entsprechenden Seite oder des entsprechenden Steuerelements. Sie können auf diese Klasse über die Control.ViewState-Eigenschaft zugreifen. Steuerelemente können auch wichtige Zustandsinformationen im Steuerelementzustand speichern, jedoch nicht als StateBag-Objekt.

Diese Klasse ist der primäre Speichermechanismus für alle HTML- und Webserversteuerelemente. Sie speichert Attribut-Wert-Paare als dem Steuerelement zugeordnete Zeichenfolgen. Sie verfolgt Änderungen dieser Attribute erst nach Ausführung der OnInit-Methode für eine Seitenanforderung und speichert die Änderungen im Ansichtszustand der Seite bzw. des Steuerelements.

Diese Klasse implementiert ein Wörterbuch, dem sie Elemente hinzufügen oder aus dem Sie Elemente entfernen können wie bei allen anderen Wörterbuchobjekten. Weitere Informationen über Datenauflistungen wie Wörterbücher finden Sie unter Auflistungen und Datenstrukturen.

Beispiel

Im folgenden Codebeispiel wird ein zusammengesetztes Label-Steuerelement veranschaulicht, das über eine Text-Eigenschaft und eine FontSize-Eigenschaft verfügt. Diese Eigenschaften werden im Ansichtszustand gespeichert und daraus abgerufen, wenn für das Steuerelement die Control.Render-Methode aufgerufen wird.

' This control renders values stored in view state for Text and FontSize properties.

Imports System
Imports System.Web
Imports System.Web.UI

Namespace ViewStateControlSamples

    Public Class CustomLabel : Inherits Control
        Private Const defaultFontSize As Integer = 3

        ' Add property values to view state with set; 
        ' retrieve them from view state with get.
        Public Property [Text]() As String
            Get
                Dim o As Object = ViewState("Text")
                If (IsNothing(o)) Then
                    Return String.Empty
                Else
                    Return CStr(o)
                End If
            End Get
            Set(ByVal value As String)
                ViewState("Text") = value
            End Set
        End Property


        Public Property FontSize() As Integer
            Get
                Dim o As Object = ViewState("FontSize")
                If (IsNothing(o)) Then
                    Return defaultFontSize
                Else
                    Return CInt(ViewState("FontSize"))
                End If

            End Get
            Set(ByVal value As Integer)
                ViewState("FontSize") = value
            End Set
        End Property
        <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
        Protected Overrides Sub Render(ByVal Output As HtmlTextWriter)
            Output.Write("<font size=" & Me.FontSize & ">" & Me.Text & "</font>")
        End Sub

    End Class

End Namespace
// This control renders values stored in view state for Text and FontSize properties.
using System;
using System.Web;
using System.Web.UI;

namespace ViewStateControlSamples
{

    public class CustomLabel : Control
    {
        private const int defaultFontSize = 3;

        // Add property values to view state with set;
        // retrieve them from view state with get.
        public String Text
        {
            get 
            { 
                object o = ViewState["text"]; 
                return (o == null)? String.Empty : (string)o;
            }

            set
            {
                ViewState["Text"] = value;
            }
        }


        public int FontSize
        {
            get
            {
                object o = ViewState["FontSize"];
                return (o == null) ? defaultFontSize : (int)o;
            }
            set
            {
                ViewState["FontSize"] = value;
            }
        }

        [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
        protected override void Render(HtmlTextWriter output)
        {
            output.Write("<font size=" + this.FontSize.ToString() + ">" + this.Text + "</font>");
        }
    }
}
package ViewStateControlSamples;
// This control renders values stored in view state for Text and
// FontSize properties.
import System.*;
import System.Web.*;
import System.Web.UI.*;

public class Label extends Control
{
    // Add property values to view state with set;
    // retrieve them from view state with get.
    /** @property 
     */
    public String get_Text()
    {
        return ((String)(get_ViewState().get_Item("Text")));
    } //get_Text

    /** @property 
     */
    public void set_Text(String value)
    {
        get_ViewState().set_Item("Text", value);
    } //set_Text
    /** @property 
     */
    public int get_FontSize()
    {
        return (int)Convert.ToInt32(get_ViewState().get_Item("FontSize"));
    } //get_FontSize

    /** @property 
     */
    public void set_FontSize(int value)
    {
        get_ViewState().set_Item("FontSize", (Int32)value);
    } //set_FontSize

    protected void Render(HtmlTextWriter output)
    {
        output.Write("<font size=" + this.get_FontSize() + ">"
            + this.get_Text() + "</font>");
    } //Render
} //Label

Vererbungshierarchie

System.Object
  System.Web.UI.StateBag

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

StateBag-Member
System.Web.UI-Namespace
IStateManager-Schnittstelle
IDictionary
Control.ViewState-Eigenschaft
AttributeCollection-Klasse

Weitere Ressourcen

Auflistungen und Datenstrukturen
Übersicht über die ASP.NET-Zustandsverwaltung