如何在网站级别动态更改主题

在做一个项目的时候,要求客户可以选择自己喜欢的主题。简单查了一下资料,思路上基本是这样的:
1. 数据库客户表有一个字段(暂时取名为Theme),专门记录客户喜欢的主题。
2. 当客户第一次登录后,网站呈现的是默认的主题模式,创建Session,查询数据库并为其赋值(当然对于新客户Theme字段有默认值为Default)。根据客户选择的主题不同,在更改网站的主题同时,将此主题存入数据库。以便再次登录后显示此主题。

那么关键的一点是如何可以动态得更改整个网站的主题呢?

我采用这个方案:
1.  创建一个从 System.Web.UI.Page 继承的 ThemePage 类,此类重写 OnPreInit 方法:

1Protected Overrides Sub OnPreInit()Sub OnPreInit(ByVal e As EventArgs)
2        MyBase.OnPreInit(e)
3
4        If Not Session("Theme") Is Nothing Then
5            Page.Theme = Session("Theme")
6        End If
7End Sub
8
2. 将其他所有的page页都继承自 ThemePage类,登录页可以除外。

3. 在切换主题页里这么处理:

1If ddlTheme.SelectedIndex = 0 Then
2            Session("Theme") = "Default"  ' Use the default Theme
3Else
4            Session("Theme") = ddlTheme.SelectedValue
5End If
6UpdateTheme() ' Store to database
刷新当前页以显示新的主题可以这么做:

Server.Transfer(Request.FilePath)

这样就可以实现主题的动态全局更换了,希望能给大家一些借鉴,如果有更好的方法,还请不吝赐教啊。

另外附一些关于ASP.NET主题的技术文章:
http://msdn2.microsoft.com/en-us/library/ms379601(VS.80).aspx
http://www.dedecms.com/web-art/Asp_Netjiaocheng/20060819/21832.html
http://www.codeproject.com/useritems/dynamicThemes.asp
http://www.codeproject.com/aspnet/ThemesAndSkins.asp

(0)

相关推荐

  • 如何在网站级别动态更改主题

    在做一个项目的时候,要求客户可以选择自己喜欢的主题.简单查了一下资料,思路上基本是这样的: 1. 数据库客户表有一个字段(暂时取名为Theme),专门记录客户喜欢的主题. 2. 当客户第一次登录后,网站呈现的是默认的主题模式,创建Session,查询数据库并为其赋值(当然对于新客户Theme字段有默认值为Default).根据客户选择的主题不同,在更改网站的主题同时,将此主题存入数据库.以便再次登录后显示此主题. 那么关键的一点是如何可以动态得更改整个网站的主题呢? 我采用这个方案: 1.  创

  • 动态更改网页HTML元素(对象)内容

    动态HTML的出现为用户提供了一种基于传统标准HTML来创建交互式页面的机制.本文主要针对IE 5.0谈谈如何通过其提供的HTML文档对象(DOM)模型使用脚本添加.删除.修改页面中的HTML元素(对象)及元素(对象)内容. 动态更改网页HTML元素(对象)内容 HTML块级元素(对象)提供的4个可读写属性innerHTML.innerText. outerHTML.outerText来更改元素(对象)内容(如表1所示). 当设置innerHTML属性时,给定字符串完全替换现有的元素(对象)内容

  • Jquery动态更改一张位图的src与Attr的使用

    今天用Jquery想动态更改一张位图的src发现css不好用,查看Jquery文档好像是css是设置样式的属性的,如颜色,字体,背景等,而attr貌似是能操作所有属性,包括Jquery未封装的属性. 复制代码 代码如下: $("#newClassImg").attr("src", "./images/plus3.jpg");//改变图片源 $("#newClass").css("background-color&qu

  • vuejs实现标签选项卡动态更改css样式的方法

    html <ul class="header-list"> <li v-cloak v-for="(item,index) in headerList" v-on:click="selectMainTheme(index)"><a href="java:;" rel="external nofollow" :class="{'active':idx == index}

  • vue如何根据网站路由判断页面主题色详解

    前言 本文主要介绍的是vue根据网站路由判断页面主题色的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 需求: 不同品牌对应不同版本配色 做法: 根据域名带的参数判断进入哪个品牌,对应哪个版本 在main.js中 import Vue from 'vue' import App from './App' import router from './router' import axios from 'axios' import MintUI from 'mint-ui'

  • vue在线动态切换主题色方案

    主要原理是利用webpack插件webpack-theme-color-replacer提取相关颜色css然后根据配置动态生成替换的css 具体实现步骤如下: 1.添加webpack插件,新建文件webpack/themePlugin.js const ThemeColorReplacer = require('webpack-theme-color-replacer') const forElementUI = require('webpack-theme-color-replacer/for

  • Vue + Scss 动态切换主题颜色实现换肤的示例代码

    根据预设的配色方案,在前端实现动态切换系统主题颜色. 大概的思路就是给html根标签设置一个data-theme属性,然后通过js切换data-theme的属性值,Scss根据此属性来判断使用对应主题变量.这里可以选择持久化Vux或接口来保存用户选择的主题. 一.首先需要给项目下载配置Scss 1.安装依赖 npm install node-sass sass-loader --save-dev 2.找到build中webpack.base.conf.js,在rules中添加scss规则 { t

  • spring boot线上日志级别动态调整的配置步骤

    目录 前言 正文 springboot版本:1.5.7 配置 文末结语 前言 日志模块是每个项目中必须的,用来记录程序运行中的相关信息.一般在开发环境下使用DEBUG级别的日志输出,为了方便查看问题,而在线上一般都使用INFO级别的日志,主要记录业务操作的日志.那么问题来了,当线上环境出现问题希望输出DEBUG日志信息辅助排查的时候怎么办呢?修改配置文件,重新打包然后上传重启线上环境,之前确实是这么做的.下面会介绍使用动态调整线上日志级别来解决这个问题. 正文 spring boot版本:1.5

  • Java ASM使用logback日志级别动态切换方案展示

    目录 背景 logback简介 解决方案 方案一:logback自动扫描更新 方案二:ASM动态修改字节码 延伸扩展 背景 一切皆有因果,所有事情,都有事件驱动.本方案的日志级别切换是由这样的背景下产生的: 单个生产环境上,有几百近千个微服务 日志级别切换不重启服务,要求即时生效果 由业务开发人员去修改代码或增加相关依赖配置等涉及面广,推动进度慢 后期动态实时过滤垃圾日志,减少io和磁盘空间成本 logback简介 在跟敌人发起战争之前,只有先发解敌方的情况,才能做到百战百胜.要想对logbac

  • React动态更改html标签的实现方式

    目录 如何动态更改html标签 Vue的实现方式 React的实现方式 React修改标签页名 方法 如何动态更改html标签 比如有这样的一个需求,子组件通过父组件传递过来的props,来动态显示<h1>到<h6>标签,可以先不管react,考虑下vue如何实现呢? Vue的实现方式 父组件 <template>     <div>         <Son :tagSize="1"/>     </div> &

随机推荐