次の方法で共有


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 サーバー コントロールの プロパティが 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 State Management の概要」を参照してください。 カスタム セッション状態プロバイダーの実装については、「 Session-State ストア プロバイダーの実装」を参照してください。

適用対象

こちらもご覧ください