如何在主页面上放置主题选择器?

时间:2009-09-29 09:05:10

标签: asp.net themes

我在主页上放了一个带有硬编码主题值的下拉框,并将其命名为lstThemeChooser。

我希望能够使用它设置页面主题。我读到我应该把它放在我的每一页中:

protected void Page_PreInit(object sender, EventArgs e)
{
    Page.Theme = Request["lstThemeChooser"];
}

但是Request为null,因此没有设置主题。

下拉框设置为autopostback = True。

任何想法我做错了,或者这是否完全不可能?

(asp.net)

1 个答案:

答案 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
{
    ...
}