Si tratta di una risposta molto tardi, ma credo che vi piace questo ..
È possibile modificare il tema della pagina nell'evento PreInit, ma non si utilizza una pagina di base.
Nella pagina master creare un menu a discesa denominato ddlTema, quindi scrivere questo blocco di codice nel proprio Global.asax. Guarda come funziona la magia :)
public class Global : System.Web.HttpApplication
{
protected void Application_PostMapRequestHandler(object sender, EventArgs e)
{
Page activePage = HttpContext.Current.Handler as Page;
if (activePage == null)
{
return;
}
activePage.PreInit
+= (s, ea) =>
{
string selectedTheme = HttpContext.Current.Session["SelectedTheme"] as string;
if (Request.Form["ctl00$ddlTema"] != null)
{
HttpContext.Current.Session["SelectedTheme"]
= activePage.Theme = Request.Form["ctl00$ddlTema"];
}
else if (selectedTheme != null)
{
activePage.Theme = selectedTheme;
}
};
}
@questo. __curious_geek, perché preferisci farlo in Page_Load not Pre_Int? –