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を返します。
例
次のコード例では、カスタム ASP.NET コントロールの SaveControlState メソッドをオーバーライドします。 このメソッドが呼び出されると、内部プロパティ 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 メソッドを使用して、特定のコントロールの操作に必要な状態情報を保存します。 このコントロール状態データは、コントロールのビューステート データとは別に格納されます。
コントロールの状態を使用するカスタム コントロールは、コントロールの状態を保存する前に、Pageで RegisterRequiresControlState メソッドを呼び出す必要があります。
注意 (継承者)
制御状態が保存されると、HTML HIDDEN 要素に格納されている変数として文字列オブジェクトがクライアントに返されます。 コントロールで使用する状態情報を抽出するには、このメソッドをオーバーライドします。
制御状態は、ページ インデックスやキーワードなど、少量の重要なデータを対象としています。 大量のデータに制御状態を使用すると、ページのパフォーマンスに悪影響を及ぼす可能性があります。 詳細については、「 ASP.NET State Management の概要」を参照してください。