Es ist eine sehr späte Antwort, aber ich glaube, Sie dies mögen ..
Sie können das Thema der Seite ändern in PreInit-Ereignis, aber Sie haben keine Basisseite verwenden.
In masterpage erstellen Sie ein Dropdown namens ddlTema, danach schreiben Sie diesen Codeblock in Ihrem Global.asax. Sehen Sie, wie Magie funktioniert :)
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;
}
};
}
@this. __curious_geek, warum sollten Sie es lieber in Page_Load not Pre_Int machen? –