Control.SaveViewState 方法

定義

儲存自頁面回傳至伺服器以來所發生的任何伺服器控制項檢視狀態變更。

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存放區提供者

適用於

另請參閱