(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

IStateManager-Schnittstelle

Definiert die Eigenschaften und Methoden, die jede Klasse implementieren muss, um die Anzeigezustandsverwaltung eines Serversteuerelements zu unterstützen.

Namespace:  System.Web.UI
Assembly:  System.Web (in System.Web.dll)
public interface IStateManager

Der IStateManager-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche EigenschaftIsTrackingViewStateRuft bei der Implementierung durch eine Klasse einen Wert ab, der angibt, ob ein Serversteuerelement die Änderungen des Anzeigezustands verfolgt.
Zum Seitenanfang
  NameBeschreibung
Öffentliche MethodeLoadViewStateLädt bei der Implementierung durch eine Klasse den zuvor gespeicherten Anzeigezustand des Serversteuerelements in das Steuerelement.
Öffentliche MethodeSaveViewStateSpeichert bei der Implementierung durch eine Klasse die Ansichtszustandsänderungen eines Serversteuerelements in einem Object.
Öffentliche MethodeTrackViewStateWeist das Serversteuerelement bei der Implementierung durch eine Klasse an, Änderungen des Anzeigezustands nachzuverfolgen.
Zum Seitenanfang

Der Anzeigezustand eines Serversteuerelements setzt sich aus den kumulativen Werten der Steuerelementeigenschaften zusammen. Diese Schnittstelle beinhaltet Methoden zum Laden und Speichern der Anzeigezustandswerte eines Serversteuerelements sowie eine Methode, mit der ein Steuerelement angewiesen wird, alle Änderungen des Anzeigezustands zu verfolgen.

Wenn Sie die Ansichtszustandsverwaltung für Serversteuerelemente in Ihrer ASP.NET-Anwendung anpassen möchten, müssen Sie eine Klasse zur Implementierung dieser Schnittstelle erstellen, da Sie die StateBag-Klasse nicht vererben können.

Im folgenden Codebeispiel wird eine Klasse veranschaulicht, die die IStateManager-Schnittstelle implementiert. Es enthält Implementierungen der IsTrackingViewState-Eigenschaft sowie der LoadViewState-Methode, der SaveViewState-Methode und der TrackViewState-Methode.


// Create a class that implements IStateManager so that
// it can manage its own view state.   
[AspNetHostingPermission(SecurityAction.Demand,
   Level = AspNetHostingPermissionLevel.Minimal)]
public sealed class MyItem : IStateManager
{
    private string _message;

    // The StateBag object that allows you to save
    // and restore view-state information.
    private StateBag _viewstate;

    // The constructor for the MyItem class.
    public MyItem(string mesg)
    {
        _message = mesg;
        _viewstate = new StateBag();
        _viewstate.Add("message", _message);
    }

    // Create a Message property that reads from and writes
    // to view state. If the set accessor writes the message
    // value to view state, the StateBag.SetItemDirty method
    // is called, telling view state that the item has changed. 
    public string Message
    {
        get
        {
            return (string)_viewstate["message"];
        }
        set
        {
            _message = value;
            _viewstate.SetItemDirty("message", true);
        }
    }

    // Implement the LoadViewState method. If the saved view state
    // exists, the view-state value is loaded to the MyItem control. 
    void IStateManager.LoadViewState(object savedState)
    {
        _message = (string)_viewstate["message"];
        if (savedState != null)
            ((IStateManager)_viewstate).LoadViewState(savedState);
    }

    // Implement the SaveViewState method. If the StateBag
    // that stores the MyItem class's view state contains
    // a value for the message property and if the value
    // has changed since the TrackViewState method was last 
    // called, all view state for this class is deleted, 
    // using the StateBag.Clear method,and the new value is added.
    object IStateManager.SaveViewState()
    {
        // Check whether the message property exists in 
        // the ViewState property, and if it does, check
        // whether it has changed since the most recent
        // TrackViewState method call.
        if (!((IDictionary)_viewstate).Contains("message") || _viewstate.IsItemDirty("message"))
        {
            _viewstate.Clear();
            // Add the _message property to the StateBag.
            _viewstate.Add("message", _message);
        }
        return ((IStateManager)_viewstate).SaveViewState();
    }


    // Implement the TrackViewState method for this class by
    // calling the TrackViewState method of the class's private
    // _viewstate property.
    void IStateManager.TrackViewState()
    {
        ((IStateManager)_viewstate).TrackViewState();
    }

    // Implement the IsTrackingViewState method for this class 
    // by calling the IsTrackingViewState method of the class's
    // private _viewstate property. 
    bool IStateManager.IsTrackingViewState
    {
        get
        {
            return ((IStateManager)_viewstate).IsTrackingViewState;
        }
    }

    // Create a function that iterates through the view-state
    // values stored for this class and returns the
    // results as a string.
    public string EnumerateViewState()
    {
        string keyName, keyValue;
        string result = String.Empty;
        StateItem myStateItem;
        IDictionaryEnumerator myDictionaryEnumerator = _viewstate.GetEnumerator();
        while (myDictionaryEnumerator.MoveNext())
        {
            keyName = (string)myDictionaryEnumerator.Key;
            myStateItem = (StateItem)myDictionaryEnumerator.Value;
            keyValue = (string)myStateItem.Value;
            result = result + "<br>ViewState[" + keyName + "] = " + keyValue;
        }
        return result;
    }
}


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.