Home / Programmazione / C# - Asp.NET / Asp.NET: accedere a elementi in pagine Master
Mattepuffo

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!