Asp.Net主题/皮肤切换,以及遇到的两个问题

本文介绍在ASP.NET开发中遇到的主题皮肤切换问题及解决方案,包括页面头部服务器标记runat=server的重要性及BasePage继承时OnPreInit方法的正确使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

还是直接上源码吗吧

源代码:/Files/lmm1508561/源码下载/2010216Theme.rar

 

很简单的例子,初级程序员都能看的懂,我这里就不介绍了。很简单的代码

 

 

ExpandedBlockStart.gif 代码
     ///   <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了

 

转载于:https://www.cnblogs.com/lmm1508561/archive/2011/02/17/1956639.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值