次の方法で共有


Control.TrackViewState メソッド

定義

サーバー コントロールにビューステートの変更を追跡させ、サーバー コントロールの StateBag オブジェクトに変更を格納できるようにします。 このオブジェクトは、ViewState プロパティによってアクセスできます。

protected:
 virtual void TrackViewState();
protected virtual void TrackViewState ();
abstract member TrackViewState : unit -> unit
override this.TrackViewState : unit -> unit
Protected Overridable Sub TrackViewState ()

次の例では、 DataBind カスタム ASP.NET サーバー コントロールの メソッドをオーバーライドします。 最初に基本 OnDataBinding メソッドを呼び出し、 メソッドを Clear 使用してすべての子コントロールを削除し、 メソッドを ClearChildViewState 使用して、それらの子コントロールの保存されたビューステート設定を削除します。 最後に、 プロパティは ChildControlsCreatedtrue設定されます。 次に、 プロパティを IsTrackingViewState 使用して、ビューステート変更の追跡がコントロールに対して有効になっているかどうかを判断します。 有効になっていない場合は、 メソッドが TrackViewState 呼び出されます。

public override void DataBind() 
{
   base.OnDataBinding(EventArgs.Empty);
   // Reset the control's state.
   Controls.Clear();
   // Check for HasChildViewState to avoid unnecessary calls to ClearChildViewState.
   if (HasChildViewState)
      ClearChildViewState();
   ChildControlsCreated = true;
   if (!IsTrackingViewState)
      TrackViewState();
}
Public Overrides Sub DataBind()
   MyBase.OnDataBinding(EventArgs.Empty)
   ' Reset the control's state.
   Controls.Clear()
   ' Check for HasChildViewState to avoid unnecessary calls to ClearChildViewState.
   If HasChildViewState Then
      ClearChildViewState()
   End If
   ChildControlsCreated = True
   If Not IsTrackingViewState Then
      TrackViewState()
   End If
End Sub

注釈

このメソッドは、サーバー コントロールのライフサイクルのイベントの Init 最後に自動的に呼び出されます。

テンプレート化されたデータ バインド コントロールを開発するときに、このメソッドを呼び出します。 このメソッドは、サーバー コントロールのビューステートへの変更を監視するために ASP.NET に警告します。これは、 メソッドをオーバーライド Control.DataBind するときに必要です。

適用対象

こちらもご覧ください