Assembly: System.Web (in system.web.dll)
Public Overridable Sub Add ( _ child As Control _ )
Dim instance As ControlCollection Dim child As Control instance.Add(child)
public virtual void Add ( Control child )
public: virtual void Add ( Control^ child )
public void Add ( Control child )
public function Add ( child : Control )
Not applicable.
Parameters
- child
-
The Control to add to the collection.
| Exception type | Condition |
|---|---|
| Thrown if the child parameter does not specify a control. |
|
| Thrown if the ControlCollection is read-only. |
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.
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.
' 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
// 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); } } }
// 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
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..NET Framework
Supported in: 3.0, 2.0, 1.1, 1.0Would 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?