Con l'introduzione delle Master Page lo sviluppatore ASP.NET può creare porzioni di layout e codice facilmente condivisibili tra più pagine.
Contrariamente a quanto può far pensare il nome, la classe Master Page non eredità dal tipo Page ma bensì da UserControl e questo influisce sulla composizione dell'albero dei controlli: infatti è la pagina che ha come suo unico controllo figlio la Master Page, che conterrà i controlli presenti nella MastePage e nei vari controlli Content della pagina.
Questo particolare è da tenere in considerazione nel caso sia necessario inserire dinamicamente dei controlli nella pagina.
A differenza di quanto è possibile fare in modo dichiarativo, dove i controlli sono racchiusi tra i tag
Per prima cosa bisogna recuperare il riferimento al ContentPlaceHolder:
ContentPlaceHolder myContent = Master.FindControl("MyContentPlaceHolder") as ContentPlaceHolder;
Controlliamo poi che il riferimento non sia nullo ed inseriamo il controllo a runtime:
if (myContent != null) { Label newLabel = new Label(); newLabel.Text = "Questa Label è aggiunta a runtime alla Master Page"; myContent.Controls.Add(newLabel); }
E' infine utile notare come il controllo Content non entri a far parte dell'albero dei controlli, ma si limiti a "passare" il suo contenuto al ContentPlaceHolder.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.