Control.SaveViewState 方法

定義

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

C#
protected virtual object SaveViewState();

傳回

傳回伺服器控制項的目前檢視狀態。 如果沒有與控制項相關聯的檢視狀態,則這個方法會傳回 null

範例

下列範例會 SaveViewState 覆寫自定義 ASP.NET 伺服器控制件中的方法。 叫用這個方法時,它會判斷控件是否有任何子控件,以及包含 Page 物件是否為回傳的結果。 如果兩者都成立,它會變更 Text Web 伺服器控制件的 Label 屬性以讀取 Custom Control Has Saved State。 然後,它會將控制元件的檢視狀態儲存為物件的陣列,名為 allStates

C#
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;
}

備註

檢視狀態是伺服器控件屬性值的累積。 這些值會自動放在伺服器控件的 ViewState 屬性中,這是 類別的 StateBag 實例。 這個屬性的值接著會在伺服器控制項生命週期的儲存狀態階段之後保存至字串物件。 如需詳細資訊,請參閱 ASP.NET 頁面生命週期概觀

儲存檢視狀態時,此字串物件會以儲存在 HTML HIDDEN 元素中的變數的形式傳回給用戶端。 當您撰寫具有自定義檢視狀態的自定義伺服器控件時,可以使用 和 LoadViewState 方法來明確SaveViewState管理檢視狀態。 如需詳細資訊,請參閱 ASP.NET 狀態管理概觀。 如需實作自定義會話狀態提供者的資訊,請參閱 實作 Session-State 存放區提供者

適用於

產品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

另請參閱