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 SaveViewState 。The 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.ViewState 。You 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.