Composite controls are controls that combine multiple controls together to form a new reusable control. For example, a simple composite control could consist of both a Label control and a TextBox control.
You can use UserControls (.ascx) files to create some quick composite controls. You can also create composite controls as custom server controls that you can add to your Visual Studio Toolbox. For creating custom server controls, create a new class that inherits from the CompositeControl base class. This is the class to use for creating custom composite controls. Override the CreateChildControls method to create the user interface. If any of your properties or methods require that the composite interface be built before the property or method call runs, put a method call to EnsureChildControls above it.
Be sure to check out Scott Guthrie's blog article title Building Composite Controls in ASP.NET.
For a complete reference on developing custom server controls, Dino Esposito, has a series of articles published on MSDN that gives a thorough explanation on all aspects of custom server controls' development. These articles are recommended for reading for any developer considering developing such controls. In this series you will learn all about developing controls from the ground up, adding callback capabilities, building composite controls, data-bound controls, deriving new controls from existing ones, and much more. Here is a link to the table of contents of the aforementioned series: Creating Controls .