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

戻り値

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

次の例では、 SaveViewState カスタム ASP.NET サーバー コントロールの メソッドをオーバーライドします。 このメソッドが呼び出されると、コントロールに子コントロールがあるかどうか、および含まれている Page オブジェクトがポストバックの結果であるかどうかを判断します。 両方が true の場合は、Web サーバー コントロールの プロパティが Label を読み取Custom Control Has Saved Stateるために変更Textされます。 次に、 という名前 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 State Management の概要」を参照してください。 カスタム セッション状態プロバイダーの実装の詳細については、「 Session-State ストア プロバイダーの実装」を参照してください。

適用対象

こちらもご覧ください