Asp.Net主题/皮肤切换,以及遇到的两个问题
时间:2011-02-17 来源:佳明
源代码:/Files/lmm1508561/源码下载/2010216Theme.rar
很简单的例子,初级程序员都能看的懂,我这里就不介绍了。很简单的代码
代码 /// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_PreInit(object sender, EventArgs e)
{
// 是否为空
if (Session["Theme"] == null)
{
// 默认主题
this.Theme ="Default";
}
else
{
// 当前选择的主题
this.Theme = Session["Theme"].ToString();
}
}
我把我在开发时用到主题皮肤切换时遇到的问题将一下,相信大家以后遇到这类的问题,就不用动找西找了。
问题1:当页面Head 里面的服务器标记 runat="server" 被去掉时,你的主题皮肤加载时将会失效。
解决方法: runat="server" 必须存在
问题2:当页面都是继承BasePage 时,我们想通过直接在基类页面直接加载,不需要每个页面都要写一遍,这时我们又将基类页面的 protected override void OnPreInit(EventArgs e) 这个方法重写了,我们需要页面初始化时需要加载其他的也谢配置信息之类的什么的,这时问题就要存在了,页面上的样式也会失效。
解决方法 : 加上 base.OnPreInit(e); 这句就OK了
相关阅读 更多 +