UserControl.LoadViewState(Object) 方法

定义

从用 SaveViewState() 方法保存的上一个用户控件请求还原视图状态信息。Restores the view-state information from a previous user control request that was saved by the SaveViewState() method.

protected:
 override void LoadViewState(System::Object ^ savedState);
protected override void LoadViewState (object savedState);
override this.LoadViewState : obj -> unit
Protected Overrides Sub LoadViewState (savedState As Object)

参数

savedState
Object

一个 Object,它表示要还原的用户控件状态。An Object that represents the user control state to be restored.

示例

下面的示例演示一个用户控件,该控件使用和方法管理其视图状态 LoadViewState SaveViewStateThe following example demonstrates a user control that manages its view state using the LoadViewState and SaveViewState methods.

public string UserText
{
    get
    {
        return (string)ViewState["usertext"];
    }
    set
    {
        ViewState["usertext"] = value;
    }
}
public string PasswordText
{
    get
    {
        return (string)ViewState["passwordtext"];
    }
    set
    {
        ViewState["passwordtext"] = value;
    }
}

[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] 
protected override void LoadViewState(object savedState) 
{
    object[] totalState = null;	   
    if (savedState != null)
    {
        totalState = (object[])savedState;
        if (totalState.Length != 3)
        {
            // Throw an appropriate exception.
        }
        // Load base state.
        base.LoadViewState(totalState[0]);
        // Load extra information specific to this control.
        if (totalState != null && totalState[1] != null && totalState[2] != null)
        {
            UserText = (string)totalState[1];
            PasswordText = (string)totalState[2];
        }
    }
}

[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] 
protected override object SaveViewState()
{
    object baseState = base.SaveViewState();
    object[] totalState = new object[3];
    totalState[0] = baseState;
    totalState[1] = user.Text;
    totalState[2] = password.Text;
    return totalState;
}
   
    Public Property UserText() As String

        Get
            Return CStr(ViewState("usertext"))
        End Get
        Set(ByVal value As String)
            ViewState("usertext") = value
        End Set

    End Property
   
    Public Property PasswordText() As String

        Get
            Return CStr(ViewState("passwordtext"))
        End Get
        Set(ByVal value As String)
            ViewState("passwordtext") = value
        End Set

    End Property
   
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
    Protected Overrides Sub LoadViewState(ByVal savedState As Object)

        Dim totalState As Object() = Nothing
        If Not (savedState Is Nothing) Then
            totalState = CType(savedState, Object())
            If totalState.Length <> 3 Then
                ' Throw an appropriate exception.
            End If
            ' Load base state.
            MyBase.LoadViewState(totalState(0))
            ' Load extra information specific to this control.
            If Not (totalState Is Nothing) AndAlso Not (totalState(1) Is Nothing) AndAlso Not (totalState(2) Is Nothing) Then
                UserText = CStr(totalState(1))
                PasswordText = CStr(totalState(2))
            End If
        End If

    End Sub
     
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
    Protected Overrides Function SaveViewState() As Object

        Dim baseState As Object = MyBase.SaveViewState()
        Dim totalState(2) As Object
        totalState(0) = baseState
        totalState(1) = user.Text
        totalState(2) = password.Text
        Return totalState

    End Function
End Class 

注解

此方法主要由 .NET Framework 基础结构使用,不应在代码中直接使用。This method is used primarily by the .NET Framework infrastructure and is not intended to be used directly from your code. 不过,控件开发人员可以重写此方法,以指定自定义服务器控件如何还原其视图状态。However, control developers can override this method to specify how a custom server control restores its view state. 有关详细信息,请参阅 ASP.NET 状态管理概述For more information, see ASP.NET State Management Overview.

您可以将视图状态值加载到字段,以便以后不必从属性中检索它 Control.ViewStateYou can load a view-state value into a field so that you do not have to retrieve it from the Control.ViewState property later. 你还可以在调用之前将值插入 ViewState 属性中 SaveViewState ,这是使字段在往返行程之间保持不变的有效方法。You can also insert the value into the ViewState property just before calling SaveViewState , which is an effective way to make a field persist across round trips to the server.

适用于

另请参阅