Jest to bardzo późno odpowiedź, ale myślę, że będzie tak ..
Można zmienić temat strony w zdarzeniu PreInit, ale nie używasz strony podstawowej.
Na stronie głównej utwórz listę rozwijaną o nazwie ddlTema, następnie wpisz ten blok kodu w pliku Global.asax. Zobacz, jak działa 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;
}
};
}
@this. __curious_geek, dlaczego wolisz to robić w Page_Load nie Pre_Int? –