當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET StateItem類代碼示例

本文整理匯總了VB.NET中System.Web.UI.StateItem的典型用法代碼示例。如果您正苦於以下問題:VB.NET StateItem類的具體用法?VB.NET StateItem怎麽用?VB.NET StateItem使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了StateItem類的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的VB.NET代碼示例。

示例1: New

' Create a namespace that contains a class, MyItem,
' that implements the IStateManager interface and 
' another, MyControl, that overrides its own view-state
' management methods to use those of MyItem.
Imports System.Web
Imports System.Web.UI
Imports System.Collections
Imports System.Security.Permissions

Namespace StateBagSampleVB

    ' 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

        ' 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
        ' 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
        ' 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

    ' This class contains an instance of the MyItem class as 
    ' private member. It overrides the state management methods 
    ' of the Control class, since it has to invoke state 
    ' management methods of MyItem whenever its own
    ' view state is being saved, loaded, or tracked.

    <AspNetHostingPermission(SecurityAction.Demand, _
       Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public NotInheritable Class MyControl
        Inherits Control
        Private myItem As MyItem

        Public Sub New()
            myItem = New MyItem("Hello World!")
        End Sub

        ' Override the LoadViewState method of the Control class.
        Protected Overrides Sub LoadViewState(ByVal savedState As Object)
            If Not (savedState Is Nothing) Then
                Dim myState As Object() = CType(savedState, Object())
                If Not (myState(0) Is Nothing) Then
                    MyBase.LoadViewState(myState(0))
                End If
                If Not (myState(1) Is Nothing) Then
                    CType(myItem, IStateManager).LoadViewState(myState(1))
                End If
            End If
        End Sub
        ' Override the TrackViewState method of the Control class
        ' to call the version of this method that was 
        ' implemented in the MyItem class.
        Protected Overrides Sub TrackViewState()
            MyBase.TrackViewState()
            If Not (myItem Is Nothing) Then
                CType(myItem, IStateManager).TrackViewState()
            End If
        End Sub

        ' Override the SaveViewState method of the Control class to
        ' call the version of this method that was implemented by
        ' the MyItem class.
        Protected Overrides Function SaveViewState() As Object
            Dim baseState As Object = MyBase.SaveViewState()
            Dim itemState As Object
            If Not (myItem Is Nothing) Then
                itemState = CType(myItem, IStateManager).SaveViewState()
            Else
                itemState = Nothing
            End If

            Dim myState(1) As Object
            myState(0) = baseState
            myState(1) = itemState
            Return myState
        End Function 'SaveViewState


        Public Sub SetMessage(ByVal mesg As String)
            myItem.Message = mesg
        End Sub


        Public Function GetMessage() As String
            Return myItem.Message
        End Function 'GetMessage


        ' Display the contents of Message and ViewState properties. 
        Protected Overrides Sub Render(ByVal output As HtmlTextWriter)
            ' Track changes to  view state before rendering.
            TrackViewState()
            output.Write(("Message: " + myItem.Message))
            output.Write("<br>")
            output.Write("<br>Enumerating the view state of the custom control<br>")
            output.Write(myItem.EnumerateViewState())
        End Sub
    End Class
End Namespace 'StateBagSampleVB
開發者ID:VB.NET開發者,項目名稱:System.Web.UI,代碼行數:188,代碼來源:StateItem


注:本文中的System.Web.UI.StateItem類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。