Control.ClearChildState 方法

定義

刪除所有伺服器控制項之子控制項的檢視狀態和控制項狀態資訊。

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

範例

下列程式碼範例示範如何覆寫 OnDataBinding 樣板化資料繫結控制項的 方法。 如果填入控制項所系結的資料來源,則會使用 Clear 方法清空控制項的 ControlCollection 集合,並使用 ClearChildState 方法移除為子控制項儲存的任何狀態資訊。

// 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 會清除子控制項的所有檢視狀態和控制項狀態資訊。 它相當於同時呼叫 ClearChildViewState 方法和 ClearChildControlState 方法。

重新建立 物件的子控制項 Control 時,請使用 ClearChildState 方法來清除子狀態,使其不會不小心套用至新的控制項。

適用於

另請參閱