Cookie Consent by Free Privacy Policy Generator
Privacy
Polipone
<novembre 2024>
lunmarmergiovensabdom
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
Immagini

ASP.NET - Cambiare master page a runtime

Per cambiare la masterpage a runtime in una pagina è sufficiente fare l'override dell'evento PreInit della pagina, e qui inserire la seguente riga di codice:


    protected void Page_PreInit(object sender, EventArgs e)
    {
        this.MasterPageFile = "myPage.master";
    }




Questa possibilità ci può tornare molto utile quando vogliamo fare un sito ottimizzato per i PC e uno per i cellulari.
I passi da seguire sono i seguenti:
  • Creare una classe BasePage che modifica la System.Web.UI.Page
  • In questa pagina fare l'override dell'evento PreInit, come in questo esempio, dove uso il metodo Check dispositivo mobile

    protected void Page_PreInit(object sender, EventArgs e)
    {
        if (CUtility.isNull(this.MasterPageFile) != "")
        {
            if (CUtility.isBrowserMobile())
                this.MasterPageFile = "mobile.master";
            else
                this.MasterPageFile = "classic.master";
        }
    }

  • Aggiornare tutte le pagine del sito in modo che implemetino la BasePage e non la System.Web.UI.Page
  • A questo punto ci si può concentrare a fare le nostre pagine senza preoccuparsi più dell'ottimizzazione per il mobile, perchè ci penserà la BasePage a cambiarci la master page, unico punto che dovremo ottimizzare per i diversi dispositivi

Notifiche