ControlCollection.Add Method (System.Web.UI)

Switch View :
ScriptFree
ControlCollection.Add Method
Adds the specified Control object to the collection.

Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)

Syntax

Visual Basic (Declaration)
Public Overridable Sub Add ( _
	child As Control _
)
Visual Basic (Usage)
Dim instance As ControlCollection
Dim child As Control

instance.Add(child)
C#
public virtual void Add (
	Control child
)
C++
public:
virtual void Add (
	Control^ child
)
J#
public void Add (
	Control child
)
JScript
public function Add (
	child : Control
)
XAML
Not applicable.

Parameters

child

The Control to add to the collection.

Exceptions

Exception type Condition

ArgumentNullException

Thrown if the child parameter does not specify a control.

HttpException

Thrown if the ControlCollection is read-only.

Remarks

The new control is added to the end of an ordinal index array. The control can be an instance of any ASP.NET server control, a custom server control you create, or a literal control.

To add a control to the collection at a specific index location, use the AddAt method.

Example

The following code example uses the Add method to add a series of template items, the number of which are taken from the server control's view state, to a custom templated control.

Visual Basic
' Override to create repeated items.
Protected Overrides Sub CreateChildControls()
    Dim O As Object = ViewState("NumItems")
    If Not (O Is Nothing)
       ' Clear any existing child controls.
       Controls.Clear()

       Dim I As Integer
       Dim NumItems As Integer = CInt(O)
       For I = 0 To NumItems - 1
          ' Create an item.
          Dim Item As RepeaterItemVB = New RepeaterItemVB(I, Nothing)
          ' Initialize the item from the template.
          ItemTemplate.InstantiateIn(Item)
          ' Add the item to the ControlCollection.
          Controls.Add(Item)
       Next
    End If
End Sub

C#
// Override to create repeated items.
protected override void CreateChildControls() {
    object o = ViewState["NumItems"];
    if (o != null) {
       // Clear any existing child controls.
       Controls.Clear();

       int numItems = (int)o;
       for (int i=0; i < numItems; i++) {
          // Create an item.
          RepeaterItem item = new RepeaterItem(i, null);
          // Initialize the item from the template.
          ItemTemplate.InstantiateIn(item);
          // Add the item to the ControlCollection.
          Controls.Add(item);
       }
    }
}

J#
// Override to create repeated items.
protected void CreateChildControls()
{
    Object o = get_ViewState().get_Item("NumItems");
    if (o != null) {
        // Clear any existing child controls.
        get_Controls().Clear();

        int numItems = Convert.ToInt32(o);
        for (int i = 0; i < numItems; i++) {
            // Create an item.
            RepeaterItem item = new RepeaterItem(i, null);
            // Initialize the item from the template.
            get_ItemTemplate().InstantiateIn(item);
            // Add the item to the ControlCollection.
            get_Controls().Add(item);
        }
    }
} //CreateChildControls

Platforms

Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

Version Information

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0
See Also

Community Content

Thogek
Pre-Existing ControlCollection Membership

Would it be accurate to state that, if the control being added is already a member of some other ControlCollection, then this ControlCollection.Add method will automatically remove it from the existing ControlCollection parent before adding it to the new one?  E.g.,

 ControlCollection1.Add(someControl);  // someControl is added to ControlCollection1
 ControlCollection2.Add(someControl);  // someControl is removed from ControlCollection1 and added to ControlCollection2

Or...?

Either way, can the ControlCollection.Add documentation be updated to clarify?