Asp.NET: accedere a elementi in pagine Master

Mattepuffo's logo
Asp.NET: accedere a elementi in pagine Master

Asp.NET: accedere a elementi in pagine Master

Una cosa che mi piace molto dell'Asp.NET è il concetto di pagine Master, dove in pratica si impostano tutte le parti comuni delle pagine.

Poi ogni pagina avrà il suo contenuto specifico.

Ogni pagina ha anche un suo file di code-behind (in Visual Basic.NET o C#) con il quale è possibile accedere a tutti gli elementi della pagina semplicemente attraverso l'attributo ID (oltre che fare tutte le altre operazioni che vi pare).

Ma se volessimo accedere ad un elemento che sta nella Master?

Ad esempio io uso una Label per eventuali errori; questa label è nella Master in modo da non doverla replicare per tutte le pagine:

<asp:Label ID="lbl_error" runat="server" Text=""></asp:Label>

Un semplice oggetto Label con ID; se provate a richiamare quell'ID in una pagina vi verrà segnalato un errore.

 

Vediamo come sia possibile accedere a quell'elemento da una pagina che implementa la Master:

Label err = (Label)Master.FindControl("lbl_error");

Creiamo un oggetto di tipo Label; l'oggetto punterà a quello della Master cercandolo con il metodo FindControl e indicando come parametro il famoso ID.

Come vedete attraverso l'oggetto Master possiamo raggiungere qualsiasi elemento vogliamo.

Quindi ad esempio se abbiamo un try/catch:

            try
            {
                ..............
            }
            catch (OdbcException ex)
            {
                Label err = (Label)Master.FindControl("lbl_error");
                err.Text = ex.Message;
            }

Molto semplice direi!


Condividi

2 Commenti

  • fermat

    ciao!<br />mi fa piacere che ti sia stato utile!!<br /> :-)

    16/10/2012
  • giggione

    Matteo sei un grande. Ho risolto una cosa molto utile grazie alla tua dritta

    16/10/2012

Commentami!