次の方法で共有


Control.TrackViewState メソッド

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

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
Protected Overridable Sub TrackViewState
'使用

Me.TrackViewState
protected virtual void TrackViewState ()
protected:
virtual void TrackViewState ()
protected void TrackViewState ()
protected function TrackViewState ()
適用できません。

解説

このメソッドは、サーバー コントロールの有効期間の Init イベント終了時に自動的に呼び出されます。

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

使用例

カスタム ASP.NET サーバー コントロールの DataBind メソッドをオーバーライドする例を次に示します。まず、基本 OnDataBinding メソッドを呼び出して、Clear メソッドですべての子コントロールを削除し、ClearChildViewState メソッドでこれらの子コントロールの保存されたビューステート設定を削除します。最後に、ChildControlsCreated プロパティが true に設定されます。その後、コントロールは 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
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 void DataBind()
{
    super.OnDataBinding(EventArgs.Empty);

    // Reset the control's state.
    get_Controls().Clear();

    // Check for HasChildViewState to avoid unnecessary calls to 
    // ClearChildViewState.
    if (get_HasChildViewState()) {
        ClearChildViewState();
    }
    set_ChildControlsCreated(true);
    if (!(get_IsTrackingViewState())) {
        TrackViewState();
    }
} //DataBind

プラットフォーム

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

Control クラス
Control メンバ
System.Web.UI 名前空間
IStateManager
ViewState
LoadViewState
SaveViewState