Come accedere ai controlli delle MasterPages

Le MasterPages sono una delle funzionalità che più apprezzo dei ASP.NET 2.0, ancora più che i vari Membership / Profile / Whatever provider.

Le apprezzo perchè ma maggior parte dei lavori che mi trovo a fare sono siti "consumer" con centinaia di pagine: le masterpages riducuno notevolmente il lavoro, soprattutto dei web designer, ogni volta che si deve cambiare anche solo minimamente la gabbia grafica di impaginazione.

Ma come fare per modificare a run-time un controllo che è stato inserito nella pagina all'interno di un ContentPlaceHolder della MasterPage?

/* Ottengo il ContentPlaceHolder che contiene il controllo da accedere */
ContentPlaceHolder footerHolder = (ContentPlaceHolder)Page.Master.FindControl("footer");

/* Lancio la FindControl dal ContentPlaceHolder appena recuperato*/
controls.footer footer = (controls.footer)footerHolder.FindControl("footerCtl");

Questo codice si applica ad una master page con la seguente struttura:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Main.master.cs" Inherits="Main" %>

<%@ Register 
Src="~/controls/footer.ascx" TagName="footer" TagPrefix="esp" %>

<
head runat="server">
  <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <
link rel="stylesheet" href="css/main.css" type="text/css" />
<
/head>
<
body>
    <
form id="form1" runat="server">
    <
div id="Container">
        <asp:ContentPlaceHolder 
ID="maincontent" runat="server">
        <
/asp:ContentPlaceHolder>
    <
/div>
    
    <
hr />
    
    <asp:ContentPlaceHolder 
ID="footer" runat="server">
        <esp:footer 
runat="server" id="footerCtl" />
    <
/asp:ContentPlaceHolder>

    <
/form>
<
/body>
<
/html>

Non è Rocket Science, ma mi ci è voluto un po' (forse anche colpa dei 29° che ci sono in ufficio) per capire il percorso giusto per accedere al contollo da una pagina basata sulla Main.Master

powered by IMHO 1.3

posted @ mercoledì 26 luglio 2006 14:35

Print

Comments on this entry:

# re: Come accedere ai controlli delle MasterPages

Left by David at 26/07/2006 14:44
Gravatar
Comments have been closed on this topic.
«gennaio»
domlunmarmergiovensab
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345