Control.SaveViewState メソッド

定義

ページがサーバーにポスト バックされた時間以降に発生した、サーバー コントロールのビューステートの変更を保存します。

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

戻り値

Object

サーバー コントロールの現在のビューステートを返します。 コントロールに関連付けられているビューステートがない場合、メソッドは null を返します。

次の例では、SaveViewStateカスタム ASP.NET サーバー コントロール内のメソッドをオーバーライドします。 このメソッドが呼び出されると、コントロールに子コントロールがあるかどうか、および含まれている Page オブジェクトがポストバックの結果であるかどうかを判断します。 両方が true の場合、Web サーバー コントロールのプロパティがTextLabel読み取Custom Control Has Saved Stateりに変更されます。 次に、コントロールのビュー ステートをオブジェクトの配列として保存します。名前 allStatesは > です。

protected override object SaveViewState()
{  // Change Text Property of Label when this function is invoked.
   if(HasControls() && (Page.IsPostBack))
   {
      ((Label)(Controls[0])).Text = "Custom Control Has Saved State";
   }
   // Save State as a cumulative array of objects.
   object baseState = base.SaveViewState();
   string userText = UserText;
   string passwordText = PasswordText;
   object[] allStates = new object[3];
   allStates[0] = baseState;
   allStates[1] = userText;
   allStates[2] = PasswordText;
   return allStates;
}
Protected Overrides Function SaveViewState() As Object
   ' Change Text Property of Label when this function is invoked.
   If HasControls() And Page.IsPostBack Then
      CType(Controls(0), Label).Text = "Custom Control Has Saved State"
   End If
   ' Save State as a cumulative array of objects.
   Dim baseState As Object = MyBase.SaveViewState()
   Dim _userText As String = UserText
   Dim _passwordText As String = PasswordText
   Dim allStates(3) As Object
   allStates(0) = baseState
   allStates(1) = _userText
   allStates(2) = PasswordText
   Return allStates
End Function

注釈

ビューステートは、サーバー コントロールのプロパティの値の累積です。 これらの値は、クラスのインスタンスであるサーバー コントロールの ViewState プロパティに自動的に StateBag 配置されます。 このプロパティの値は、サーバー コントロールのライフ サイクルの保存状態ステージの後に文字列オブジェクトに保持されます。 詳細については、「ASP.NET ページライフサイクルの概要」を参照してください。

ビューステートが保存されると、この文字列オブジェクトは、HTML HIDDEN 要素に格納されている変数としてクライアントに返されます。 カスタム ビュー ステートを使用してカスタム サーバー コントロールを作成する場合、ビューステートは、そのメソッドをLoadViewState使用してSaveViewState明示的に管理できます。 詳細については、「ASP.NET 状態管理の概要」を参照してください。 カスタム セッション状態プロバイダーの実装については、「 Session-State ストア プロバイダーの実装」を参照してください。

適用対象

こちらもご覧ください