Control.SaveControlState 方法

定義

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

protected public:
 virtual System::Object ^ SaveControlState();
protected internal virtual object SaveControlState ();
abstract member SaveControlState : unit -> obj
override this.SaveControlState : unit -> obj
Protected Friend Overridable Function SaveControlState () As Object

傳回

Object

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

範例

下列程式碼範例會 SaveControlState 覆寫自訂 ASP.NET 控制項中的 方法。 叫用這個方法時,它會判斷內部屬性 currentIndex 是否設定為非預設值,如果是,則會將值儲存至控制狀態。

系統會 OnInit 覆寫 方法,以呼叫 RegisterRequiresControlState 上的 Page 方法,以指出自訂控制項使用控制項狀態。

public class Sample : Control {
    private int currentIndex = 0;
   
    protected override void OnInit(EventArgs e) {
        Page.RegisterRequiresControlState(this);
        base.OnInit(e);
    }

    protected override object SaveControlState() {
        return currentIndex != 0 ? (object)currentIndex : null;
    }

    protected override void LoadControlState(object state) {
        if (state != null) {
            currentIndex = (int)state;
        }
    }
}
Class Sample
  Inherits Control
  
  Dim currentIndex As Integer
  
      Protected Overrides Sub OnInit(ByVal e As EventArgs)
          Page.RegisterRequiresControlState(Me)
          currentIndex = 0
          MyBase.OnInit(e)
      End Sub
  
      Protected Overrides Function SaveControlState() As Object
          If currentIndex <> 0 Then
              Return CType(currentIndex, Object)
          Else
              Return Nothing
          End If
      End Function
  
      Protected Overrides Sub LoadControlState(ByVal state As Object)
          If (state <> Nothing) Then
              currentIndex = CType(state, Integer)
          End If
      End Sub
  
End Class

備註

SaveControlState使用 方法來儲存特定控制項作業所需的狀態資訊。 此控制項狀態資料會與控制項的檢視狀態資料分開儲存。

使用控制項狀態的自訂控制項必須先在 上 Page 呼叫 方法, RegisterRequiresControlState 才能儲存控制項狀態。

給繼承者的注意事項

儲存控制項狀態時,字串物件會以儲存在 HTML HIDDEN 元素中的變數的形式傳回給用戶端。 覆寫這個方法,以擷取控制項中要使用的狀態資訊。

控制狀態適用于少量的重要資料,例如頁面索引或關鍵字。 對大量資料使用控制狀態可能會對頁面效能造成負面影響。 如需詳細資訊,請參閱ASP.NET 狀態管理概觀

適用於

另請參閱