Der findes mange eksempler på nettet, hvor man viser oprettelse af labels, tekstfelter, checkboks felter og dropdown menuer etc. i 'CreateChildControls()' scopet i C# eller VB.Net filen.
Dette har jeg altid set som et skridt tilbage, som næsten kan sammenlignes med de gode gamle VBScript dage, hvor man skrev html kode ud fx. i response.write eller dengang man kodede Java servlets, og man ikke havde muligheden for at abstrahere markup fra serverside kode. En god måde at undgå at erklære serverkontrollerne deklarativt i 'CreateChildControls()', er ved at gøre brug af usercontrols. Her bibeholder man opdelingen i markup fil og en codebehind fil.

Derfor dette hurtigt lille eksempel på, hvordan man beriger en webpart med en asp.net userkontrol under 'CreateChildControls()'.

Sådan indlæses en usercontrol i webpart kode under 'CreateChildControls()':

using System.Web.UI.WebControls.WebParts;
 
namespace MyCompany.MyProduct.MyWebparts {
    /// <summary>
    /// MyWebpart class.
    /// </summary>
    public class MyWebpart : WebPart {
        /// <summary>
        /// 
        /// </summary>
        protected override void CreateChildControls() {
            var ctrl = Page.LoadControl("~/_ControlTemplates/MyWebpart/MyUsrCtrl.ascx");
            Controls.Add(ctrl);
        }
    }
}

 

Dette er helt klart en meget renere tilgang til programmering af webparts, og man udnytter .net mulighederne fuldt ud ved at synliggøre adskillelsen mellem markup og codebehind fil.