共用方式為


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

適用於

另請參閱