Here are some tips I picked up in a Microsoft newsgroup regarding the creation of composite ASP.NET web controls.
1) My composite controls are created based on a property of my control. When the postback of a page occurs due to a button click, my CreateChildControls() method is called before the button code is executed, so if that button code changes the property in question it is already too late to reflect this in the control. Is there a way to "Invalidate" my control when this property is set so that it's child controls are recreated?
A) Yes, set ChildControlsCreate to false.
2) Dropping my control onto a design surface displays only a blank control, none of the composite controls are visible at all.
First add the following method in order to expose the functionality of a protected method in your component
|public new void EnsureChildControls()
Next add the following attribute to your class
Finally, create a designer class like so
public class MyControlDesigner : ControlDesigner
public override String GetDesignTimeHtml()
( (MyControl) Control).EnsureChildControls();