UserControl.LoadViewState(Object) 方法

定義

SaveViewState() 方法所儲存的先前使用者控制項要求來還原檢視狀態資訊。

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,代表所要還原的使用者控制項狀態。

範例

下列範例示範使用 和 SaveViewState 方法來管理其檢視狀態 LoadViewState 的使用者控制項。

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基礎結構使用,並不適合直接從您的程式碼使用。 不過,控制項開發人員可以覆寫這個方法,以指定自訂伺服器控制項如何還原其檢視狀態。 如需詳細資訊,請參閱 ASP.NET 狀態管理概觀

您可以將檢視狀態值載入欄位,以便您稍後不需要從 Control.ViewState 屬性擷取它。 您也可以在呼叫 SaveViewState 之前將值插入 屬性中 ViewState ,這是讓欄位在往返伺服器之間保存的有效方式。

適用於

另請參閱