http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4316|回复: 0

[Asp.Net] asp.net动态修改主题

[复制链接]
发表于 2012-7-19 10:17:16 | 显示全部楼层 |阅读模式
这个有很多种方法我在这里写几个吧
方式一:
在页面的PreInit事件中直接设置。该方法可实现不同页面加载不同主题,如果要实现网站整体换肤,只需要创建一个从System.Web.UI.Page类派生的子类,在该类的PreInit事件中加载特定主题,最后所有页面继承自此类即可。

[mw_shl_code=csharp,true]protected override void OnPreInit(EventArgs e)
{
//这里是要换的主题的名称
this.Theme="MyTheme";
base.OnPreInit(e);
}[/mw_shl_code
其中“MyTheme”为主题名,可从外部文件或数据库加载,以实现主题设置的持久化。
==================================================================================
方式二:
在global.asax中捕获HttpApplication的PreRequestHanderExecute事件
在事件中为Page的PreInit事件添加处理程序
global.asax中的代码如下
[C#] 纯文本查看 复制代码
void Application_PreRequestHandlerExecute(object src,EventArgs e)
{
    Page page=this.Context.Handler as Page;
    if(page!=null)
    {
       page.PreInit+=new EventHandler(page_PreInit);
    }
}

void Page_PreInit(object sender,EventArgs e)
{
    Page page=this.Context.Handler as Page;
    if(page!=null)
    {
       page.Theme="MyTheme";
    }
}

================================================
方法三:
运行时修改配置文件

[C#] 纯文本查看 复制代码
首先导入命名空间:using System.Web.Configuration;

接着用如下代码修改web.config文件的pages配置节:

        string configPath = "~";              //表示根目录
        Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
        PagesSection pages = (PagesSection)config.GetSection("system.web/pages");
        pages.Theme = DDLTheme.SelectedValue;       //修改主题,我根据DropdownList回发修改主题。
        config.Save();

不过有一个问题:由于修改了web.config文件,session会丢失,如果用session判断用户是否在线,就会导致修改主题后必须重新登陆。

解决办法:先把session的内容放到cookie里,修改后再读取到session里。办法比较笨,如果用户浏览器不支持或者禁用了cookie,这个办法就无效了,那就只好重新登录了。不知有没更好的解决办法。




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 05:01

© 2014-2021

快速回复 返回顶部 返回列表