Skip to main content
.NET Framework Class Library
ControlCreateChildControls Method

Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering.

Namespace:   System.Web.UI
Assembly:  System.Web (in System.Web.dll)
Syntax
Protected Friend Overridable Sub CreateChildControls
protected internal virtual void CreateChildControls()
protected public:
virtual void CreateChildControls()
abstract CreateChildControls : unit -> unit  
override CreateChildControls : unit -> unit
Remarks

When you develop a composite or templated server control, you must override this method. Controls that override the CreateChildControls method should implement the INamingContainer interface to avoid naming conflicts.

For more information, see ASP.NET Web Server Controls Templates and Developing Custom ASP.NET Server Controls.

Examples

The following example demonstrates an overridden version of the CreateChildControls method. In this implementation, the composite control displays a TextBox control enclosed in two literal controls that render HTML.

Security noteSecurity Note

This example has a text box that accepts user input, which is a potential security threat. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. For more information, see Script Exploits Overview.

' Override CreateChildControls to create the control tree.
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="Execution")> _
Protected Overrides Sub CreateChildControls()

   ' Add a LiteralControl to the current ControlCollection. 
   Me.Controls.Add(New LiteralControl("<h3>Value: "))


   ' Create a text box control, set the default Text property,  
   ' and add it to the ControlCollection. 
   Dim box As New TextBox()
   box.Text = "0" 
   Me.Controls.Add(box)

   Me.Controls.Add(New LiteralControl("</h3>"))
End Sub 'CreateChildControls
// Override CreateChildControls to create the control tree.
        [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="Execution")]
        protected override void CreateChildControls() {

            // Add a LiteralControl to the current ControlCollection. 
            this.Controls.Add(new LiteralControl("<h3>Value: "));


            // Create a text box control, set the default Text property,  
            // and add it to the ControlCollection.
            TextBox box = new TextBox();
            box.Text = "0";
            this.Controls.Add(box);

            this.Controls.Add(new LiteralControl("</h3>"));
        }
Version Information

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0
Platforms

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.