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 使用して、特定のコントロールの操作に必要な状態情報を保存します。 このコントロール状態データは、コントロールのビュー ステート データとは別に格納されます。

コントロールの状態を使用するカスタム コントロールは、コントロールの状態を保存する RegisterRequiresControlState 前にメソッドを Page 呼び出す必要があります。

注意 (継承者)

制御状態が保存されると、HTML HIDDEN 要素に格納されている変数として、文字列オブジェクトがクライアントに返されます。 コントロールで使用する状態情報を抽出するには、このメソッドをオーバーライドします。

制御状態は、ページ インデックスやキーワードなど、少量の重要なデータを対象としています。 大量のデータに制御状態を使用すると、ページのパフォーマンスに悪影響を及ぼす可能性があります。 詳細については、「ASP.NET 状態管理の概要」を参照してください。

適用対象

こちらもご覧ください