Control.SaveViewState 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
儲存自頁面回傳至伺服器以來所發生的任何伺服器控制項檢視狀態變更。
protected:
virtual System::Object ^ SaveViewState();
protected virtual object SaveViewState ();
abstract member SaveViewState : unit -> obj
override this.SaveViewState : unit -> obj
Protected Overridable Function SaveViewState () As Object
傳回
傳回伺服器控制項的目前檢視狀態。 如果沒有與控制項相關聯的檢視狀態,則這個方法會傳回 null
。
範例
下列範例會 SaveViewState 覆寫自定義 ASP.NET 伺服器控制件中的方法。 叫用這個方法時,它會判斷控件是否有任何子控件,以及包含 Page 物件是否為回傳的結果。 如果兩者都成立,它會變更 Text Web 伺服器控制件的 Label 屬性以讀取 Custom Control Has Saved State
。 然後,它會將控制元件的檢視狀態儲存為物件的陣列,名為 allStates
。
protected override object SaveViewState()
{ // Change Text Property of Label when this function is invoked.
if(HasControls() && (Page.IsPostBack))
{
((Label)(Controls[0])).Text = "Custom Control Has Saved State";
}
// Save State as a cumulative array of objects.
object baseState = base.SaveViewState();
string userText = UserText;
string passwordText = PasswordText;
object[] allStates = new object[3];
allStates[0] = baseState;
allStates[1] = userText;
allStates[2] = PasswordText;
return allStates;
}
Protected Overrides Function SaveViewState() As Object
' Change Text Property of Label when this function is invoked.
If HasControls() And Page.IsPostBack Then
CType(Controls(0), Label).Text = "Custom Control Has Saved State"
End If
' Save State as a cumulative array of objects.
Dim baseState As Object = MyBase.SaveViewState()
Dim _userText As String = UserText
Dim _passwordText As String = PasswordText
Dim allStates(3) As Object
allStates(0) = baseState
allStates(1) = _userText
allStates(2) = PasswordText
Return allStates
End Function
備註
檢視狀態是伺服器控件屬性值的累積。 這些值會自動放在伺服器控件的 ViewState 屬性中,這是 類別的 StateBag 實例。 這個屬性的值接著會在伺服器控制項生命週期的儲存狀態階段之後保存至字串物件。 如需詳細資訊,請參閱 ASP.NET 頁面生命週期概觀。
儲存檢視狀態時,此字串物件會以儲存在 HTML HIDDEN
元素中的變數的形式傳回給用戶端。 當您撰寫具有自定義檢視狀態的自定義伺服器控件時,可以使用 和 LoadViewState 方法來明確SaveViewState管理檢視狀態。 如需詳細資訊,請參閱 ASP.NET 狀態管理概觀。 如需實作自定義會話狀態提供者的資訊,請參閱 實作 Session-State 存放區提供者。