Control.ClearChildState 方法

定义

删除服务器控件的所有子控件的视图状态和控件状态信息。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. 如果填充了控件绑定到的数据源,则使用 Clear 方法清空控件的 ControlCollection 集合,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.

适用于

另请参阅