Control.ClearChildState Control.ClearChildState Control.ClearChildState Control.ClearChildState Method

定義

サーバー コントロールのすべての子コントロールのビューステート情報およびコントロールの状態情報を削除します。Deletes the view-state and control-state information for all the server control's child controls.

protected:
 void ClearChildState();
protected void ClearChildState ();
member this.ClearChildState : unit -> unit
Protected Sub ClearChildState ()

次のコード例は、テンプレート化さOnDataBindingれたデータバインドコントロールのメソッドをオーバーライドする方法を示しています。The following code example demonstrates how to override the OnDataBinding method for a templated data-bound control. コントロールをバインドするデータソースが設定されている場合は、 ControlCollection ClearメソッドClearChildStateを使用してコントロールのコレクションが空になり、メソッドを使用して、子コントロールに保存されていたすべての状態情報が削除されます。If the data source that the control binds to is populated, the control's ControlCollection collection is emptied using the Clear method, and the ClearChildState method is used to remove any state information that had been saved for the child controls.

// Override to create the repeated items from the DataSource.
protected override void OnDataBinding(EventArgs e) {
    base.OnDataBinding(e);

    if (DataSource != null) {
        // Clear any existing child controls.
        Controls.Clear();
        // Clear any previous state for the existing child controls.
        ClearChildState();

        // Iterate over the DataSource, creating a new item for each data item.
        IEnumerator dataEnum = DataSource.GetEnumerator();
        int i = 0;
        while(dataEnum.MoveNext()) {

            // Create an item.
            RepeaterItem item = new RepeaterItem(i, dataEnum.Current);
            // Initialize the item from the template.
            ItemTemplate.InstantiateIn(item);
            // Add the item to the ControlCollection.
            Controls.Add(item);

            i++;
        }

        // Prevent child controls from being created again.
        ChildControlsCreated = true;
        // Store the number of items created in view state for postback scenarios.
        ViewState["NumItems"] = i;
    }
}
' Override to create the repeated items from the DataSource.
Protected Overrides Sub OnDataBinding(E As EventArgs)
    MyBase.OnDataBinding(e)

    If Not DataSource Is Nothing
        ' Clear any existing child controls.
        Controls.Clear()
        ' Clear any previous view state for the existing child controls.
        ClearChildState()

        ' Iterate over the DataSource, creating a new item for each data item.
        Dim DataEnum As IEnumerator = DataSource.GetEnumerator()
        Dim I As Integer = 0
        Do While (DataEnum.MoveNext())

            ' Create an item.
            Dim Item As RepeaterItemVB = New RepeaterItemVB(I, DataEnum.Current)
            ' Initialize the item from the template.
            ItemTemplate.InstantiateIn(Item)
            ' Add the item to the ControlCollection.
            Controls.Add(Item)

            I = I + 1
        Loop

        ' Prevent child controls from being created again.
        ChildControlsCreated = true
        ' Store the number of items created in view state for postback scenarios.
        ViewState("NumItems") = I
    End If
End Sub

注釈

メソッドClearChildStateは、子コントロールのすべてのビューステート情報とコントロール状態情報をクリアします。The ClearChildState method clears all view-state and control-state information for child controls. これは、 ClearChildViewStateメソッドClearChildControlStateとメソッドの両方を呼び出すことと同じです。It is equivalent to calling both the ClearChildViewState method and the ClearChildControlState method.

Controlオブジェクトの子コントロールを再作成する場合はClearChildState 、メソッドを使用して、新しいコントロールに誤って適用されないように、子の状態をクリアします。When recreating child controls of a Control object, use the ClearChildState method to clear child state so that it does not get applied to the new controls inadvertently.

適用対象

こちらもご覧ください