Coach


In pieno rock ".net" roll
Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Masterpage non solo per il layout

Le nuove MasterPage di Asp.net 2.0 sono molto comode per gestire il layout delle nostre applicazioni web, ma spesso pensarle solo per il layout può essere riduttivo.

Infatti se considerate alla MasterPage a come utilizzavamo gli UserControl nella versione 1.1 possono essere molto potenti.
Cosa intendo?
Mettiamo il caso di dover gestire la validazione lato server e di dover tornare un'errore generico all'utente e debba essere centralizzato per tutta l'applicazione.

Quindi inseriamo una label nella masterpage
<asp:Label ID="lblError" runat="server" ForeColor="#C00000" Visible="False" />

e già così nella pagina possiamo accedere al controllo facendo
this.Master.FindControl("lblError");

E' un'approccio che sinceramente non mi piace perchè andiamo accedere al controllo che è privato nella masterpage e dovremmo comunque castare l'oggetto.
Invece la cosa migliore è esporre come proprietà della masterpage le proprietà che ci interessano del controllo, in questo caso la proprietà Text e Visibile.

Quindi nella masterpage faremo
public string TextError
    {
        get
        {return lblError.Text;}
        set

       {lblError.Text = value; }       
    }
   
    public bool VisibleError
    {
        get
        {return lblError.Visible;}
        set
        {lblError.Visible = value; }
    } 


Poi per poter accedere in maniera tipizzata alle proprietà della masterpage dobbiamo aggiungere a livello di pagina come virtual path la masterpage.

Quindi subito dopo la direttiva <@ Page dobbiamo inserire la direttiva <@ MasterType
<%@ MasterType VirtualPath="~/Default.master" %>

in questo modo possiamo accedere direttamente alle proprietà TextError e VisibleError con
this.Master.TextError = "Si è generato un errore";

allo stesso modo potremmo gestire anche gli altri controlli della Masterpage

Categoria: .NET 2.0
martedì, 10 ott 2006 Ore. 14.30
  • Views Home Page: 302.174
  • Views Posts: 830.043
  • Views Gallerie: 359.025
  • n° Posts: 484
  • n° Commenti: 275












Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003