IStateManagerとは? わかりやすく解説

IStateManager インターフェイス

サーバー コントロールビューステート管理できるようにするために、すべてのクラス実装する必要があるプロパティメソッド定義します

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文構文

Dim instance As IStateManager
public interface IStateManager
public interface class IStateManager
public interface IStateManager
public interface IStateManager
解説解説
使用例使用例

IStateManager インターフェイス実装方法次のコード例示します。この例には、IsTrackingViewState プロパティ、および LoadViewState、SaveViewState、TrackViewState の各メソッド実装含まれます。

' Create a class that implements IStateManager so that
' it can manage its own view state.   

<AspNetHostingPermission(SecurityAction.Demand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
Public NotInheritable Class
 MyItem
    Implements IStateManager
    Private _message As String

    ' The StateBag object that allows you to save
    ' and restore view-state information.
    Private _viewstate As StateBag


    ' The constructor for the MyItem class.
    Public Sub New(ByVal
 mesg As String)
        _message = mesg
        _viewstate = New StateBag()
        _viewstate.Add("message", _message)
    End Sub 'New

    ' 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 Property Message() As
 String
        Get
            Return CStr(_viewstate("message"))
        End Get
        Set(ByVal value As
 String)
            _message = value
            _viewstate.SetItemDirty("message", True)
        End Set
    End Property

    ' Implement the LoadViewState method. If the saved view state
    ' exists, the view-state value is loaded to the MyItem 
    ' control. 
    Sub LoadViewState(ByVal savedState As
 Object) Implements IStateManager.LoadViewState
        _message = CStr(_viewstate("message"))
        If Not (savedState Is
 Nothing) Then
            CType(_viewstate, IStateManager).LoadViewState(savedState)
        End If
    End Sub 'LoadViewState
    ' 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.
    Function SaveViewState() As Object
 Implements 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 Not CType(_viewstate, IDictionary).Contains("message")
 OrElse _viewstate.IsItemDirty("message")
 Then
            _viewstate.Clear()
            ' Add the _message property to the StateBag.
            _viewstate.Add("message", _message)
        End If
        Return CType(_viewstate, IStateManager).SaveViewState()
    End Function 'IStateManager.SaveViewState


    ' Implement the TrackViewState method for this class by
    ' calling the TrackViewState method of the class's private
    ' _viewstate property.
    Sub TrackViewState() Implements IStateManager.TrackViewState
        CType(_viewstate, IStateManager).TrackViewState()
    End Sub 'IStateManager.TrackViewState
    ' Implement the IsTrackingViewState method for this class 
    ' by calling the IsTrackingViewState method of the class's
    ' private _viewstate property. 

    ReadOnly Property IsTrackingViewState()
 As Boolean Implements
 IStateManager.IsTrackingViewState
        Get
            Return CType(_viewstate, IStateManager).IsTrackingViewState
        End Get
    End Property

    ' Create a function that iterates through the view-state
    ' values stored for this class and returns the
    ' results as a string.
    Public Function EnumerateViewState() As
 String
        Dim keyName, keyValue As String
        Dim result As String
 = [String].Empty
        Dim myStateItem As StateItem
        Dim myDictionaryEnumerator As IDictionaryEnumerator
 = _viewstate.GetEnumerator()
        While myDictionaryEnumerator.MoveNext()
            keyName = CStr(myDictionaryEnumerator.Key)
            myStateItem = CType(myDictionaryEnumerator.Value, StateItem)
            keyValue = CStr(myStateItem.Value)
            result = result + "<br>ViewState["
 + keyName + "] = " + keyValue
        End While
        Return result
    End Function 'EnumerateViewState
End Class 'MyItem 
// 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;
    }
}
// Create a class that implements IStateManager so that
// it can manage its own view state.   
public class MyItem implements 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);
    } //MyItem

    // 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. 
    /** @property 
     */
    public String get_Message()
    {
        return (String)(_viewState.get_Item("message"));
    } //get_Message

    /** @property 
     */
    public void set_Message(String value)
    {
        _message = value;
        _viewState.SetItemDirty("message", true);
    } //set_Message

    // Implement the LoadViewState method. If the saved view state
    // exists, the view-state value is loaded to the MyItem control.
 
    public void LoadViewState(Object savedState)
    {
        _message = (String)(_viewState.get_Item("message"));
        if (savedState != null) {
            ((IStateManager)_viewState).LoadViewState(savedState);
        }
    } //LoadViewState

    // 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.
    public Object 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();
    } //SaveViewState

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

    // Implement the IsTrackingViewState method for this class 
    // by calling the IsTrackingViewState method of the class's
    // private _viewState property. 
    /** @property 
     */
    public boolean get_IsTrackingViewState()
    {
        return ((IStateManager)_viewState).get_IsTrackingViewState();
    } // get_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 = "";
        StateItem myStateItem;
        IDictionaryEnumerator myDictionaryEnumerator = 
            _viewState.GetEnumerator();
        while (myDictionaryEnumerator.MoveNext()) {
            keyName = (String)myDictionaryEnumerator.get_Key();
            myStateItem = (StateItem) myDictionaryEnumerator.get_Value();
            keyValue = (String)myStateItem.get_Value();
            result = result + "<br>ViewState[" + keyName + "]
 = " + keyValue;
        }
        return result;
    } //EnumerateViewState
} //MyItem
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

IStateManager プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ IsTrackingViewState クラスによって実装された場合は、サーバー コントロールがそのビューステート変化追跡するかどうかを示す値を取得します
参照参照

関連項目

IStateManager インターフェイス
System.Web.UI 名前空間
StateBag
StateItem

その他の技術情報

ASP.NET状態管理に関する推奨事項

IStateManager メソッド


パブリック メソッドパブリック メソッド

参照参照

関連項目

IStateManager インターフェイス
System.Web.UI 名前空間
StateBag
StateItem

その他の技術情報

ASP.NET状態管理に関する推奨事項

IStateManager メンバ




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「IStateManager」の関連用語

IStateManagerのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



IStateManagerのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS