在 asp.net C# 上,我想在页面加载时更改主题,此操作需要 PreInit 事件,而 Masterpage 没有。该问题的解决方案是什么?
谢谢,
在 asp.net C# 上,我想在页面加载时更改主题,此操作需要 PreInit 事件,而 Masterpage 没有。该问题的解决方案是什么?
谢谢,
一种方法是创建一个Http 模块(Rick van den Bosch 博客)
除了模块之外,您可以考虑让所有页面都继承自定义 PreInit 并相应设置主题的基本页面。
编辑评论。
没有那么多,只要确保您创建的页面继承自类似于BasePage
下面的类而不是默认Page
类,您应该进行设置。
public class BasePage : Page
{
public BasePage()
{
this.PreInit += new EventHandler(BasePage_PreInit);
}
protected void BasePage_PreInit(object sender, EventArgs e)
{
this.Page.Theme = theme; //Garner from appropriate resource
}
}
希望有帮助。