Using dynamic controls

Een pagina ( .ASPX ) of een usercontrol (.ASCX) heeft een Controls property.
Deze property bevat alle property's die op een pagina gebruikt worden.
Het is eenvoudig om in runtime een Control hieraan toe te voegen.

Voorbeeld toevoegen van een label:

Label mijnLabel = new Label();
mijnLabel.Text ="dynamisch toegevoegd";
This.Controls.Add(mijnLabel);

 

Een Panel Control heeft ook een Controls property, dus je kunt ook dynamisch controls toevoegen aan een Panel. Voordeel hiervan is dat je als je Controls die runtime zijn gemaakt ook weer wilt inlezen je alvast per Panel kunt doen.

Je kunt ze ook per Type terug lezen. Bijvoorbeeld alle Textboxen van een Panel query je als volgt:

List mijnTextBoxenList = mijnPanel.Controls.ofType().toList();

 

Je leest ze hierbij terug in de volgorde zoals ze in de property zijn geplaatst.

 

Dynamic Controls en Viewstate: 

 Als je dnamic controls gebruikt moet je deze in de oninit event van je page of usercontrol aanmaken.

Het oninit event van een page of een usercontrol wordt alleen tijdens het aanmaken van de pagina uitgevoerd. Een postback heeft dus geen effect hierop. Op deze manier worden de controls niet bij elke postback aangemaakt En bovendien worden de controls meegenomen in de Viewstate van de pagina. De ingevulde waardes van de controls worden dus tijdens het unload event van de pagina of usercontrol weggeschreven in de viewstate van de pagina en bij prerender weer teruggelezen.

{{opmerking.Naam}}:

{{opmerking.OpmerkingText}}

            

Saving your comment....

Naam is verplicht!
Email is verplicht!
Opmerking is verplicht!