Control.SaveControlState メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim returnValue As Object returnValue = Me.SaveControlState
サーバー コントロールの現在の状態を返します。コントロールに関連付けられている状態がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。

SaveControlState メソッドを使用して、特定のコントロールの操作に必要な状態情報を保存します。このコントロールの状態データは、コントロールのビューステート データとは別に保存されます。
コントロールの状態を使用するカスタム コントロールは、コントロールの状態を保存する前に、Page の RegisterRequiresControlState メソッドを呼び出す必要があります。
継承時の注意 コントロールの状態を保存すると、この文字列オブジェクトは HTML HIDDEN 要素に格納された変数としてクライアントに返されます。コントロールで使用する状態情報を抽出するには、このメソッドをオーバーライドします。 コントロールの状態としては、ページ インデックスやキーワードなど、少量の重要なデータが想定されています。大量のデータにコントロールの状態を使用すると、ページのパフォーマンスに悪い影響を与える可能性があります。詳細については、「ASP.NET の状態管理」を参照してください。
カスタム ASP.NET コントロールの SaveControlState メソッドをオーバーライドするコード例を次に示します。このメソッドは、呼び出されると、内部プロパティ currentIndex が既定値以外に設定されているかどうかを確認し、既定値以外に設定されている場合、この値をコントロールの状態に保存します。
OnInit メソッドは、Page で RegisterRequiresControlState メソッドを呼び出して、カスタム コントロールでコントロールの状態を使用することを示すためにオーバーライドされます。
Class Sample Inherits Control Dim currentIndex As Integer Overloads Sub OnInit(ByVal e As EventArgs) Page.RegisterRequiresControlState(Me) currentIndex = 0 MyBase.OnInit(e) End Sub Overloads Function SaveControlState() As Object If currentIndex <> 0 Then Return CType(currentIndex, Object) Else Return Nothing End If End Function Overloads Sub LoadControlState(ByVal state As Object) If (state <> Nothing) Then currentIndex = CType(state, Integer) End If End Sub End Class
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; } } }

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- Control.SaveControlState メソッドのページへのリンク