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 <asp:Content />, questi devono essere aggiunti in maniera programmatica al ContentPlaceHolder della Master Page.
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.
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Per inserire un commento, devi registrarti alla nostra community.








Stampa
Snippet
Download 


