Control.SaveControlState メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ページがサーバーにポスト バックされた時間以降に発生したすべてのサーバー コントロール状態の変化を保存します。
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
戻り値
サーバー コントロールの現在の状態を返します。 このコントロールに関連付けられている状態がない場合、このメソッドは null
を返します。
例
次のコード例では、 SaveControlState カスタム ASP.NET コントロールの メソッドをオーバーライドします。 このメソッドが呼び出されると、内部プロパティ currentIndex
が既定値以外の値に設定されているかどうかを判断し、設定されている場合は値を制御状態に保存します。
メソッドがOnInitオーバーライドされ、 の メソッドPageがRegisterRequiresControlState呼び出され、カスタム コントロールがコントロールの状態を使用していることを示します。
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 State Management の概要」を参照してください。
適用対象
こちらもご覧ください
.NET