我在主页上放了一个带有硬编码主题值的下拉框,并将其命名为lstThemeChooser。
我希望能够使用它设置页面主题。我读到我应该把它放在我的每一页中:
protected void Page_PreInit(object sender, EventArgs e)
{
Page.Theme = Request["lstThemeChooser"];
}
但是Request为null,因此没有设置主题。
下拉框设置为autopostback = True。
任何想法我做错了,或者这是否完全不可能?
(asp.net)
答案 0 :(得分:1)
您无法在母版页中执行此操作。您必须在所有页面中执行此操作。我建议继承Page Object:
namespace MyNamespace.Mycontrols
{
public class Page : System.Web.UI.Page
{
public Page()
{
this.PreInit += new EventHandler(Page_PreInit);
}
void Page_PreInit(object sender, EventArgs e)
{
// Apply Theme
this.Theme = Request["lstThemeChooser"];
}
}
}
编辑:使用该课程
public partial class MyPage: MyNamespace.Mycontrols.Page
{
...
}