While it seems that the \"right\" way to make a server control is to construct all child controls inside CreateChildControls call. But since it\'s difficult to know when it
You should ALWAYS construct your child controls in CreateChildControls. This is the proper time in the Lifecycle to initialize and add them to the control tree. One of the reasons for this is that many times the method EnsureChildContols is called, which then calls CreateChildControls if necessary. Best Practice, just do it.