当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 如何在网站级别动态更改主题

ASP.NET
Asp.Net 通用数据操作类 (附通用数据基类)
asp.net汉字转拼音和获取汉字首字母的代码
asp.net 多字段模糊查询代码
OpenCms 带分页的新闻列表
URLRewriter最简单入门介绍 URLRewriter相关资源
asp.net Repeater取得CheckBox选中的某行某个值
asp.net清空Cookie的两种方法
asp.net一些很酷很实用的.Net技巧
asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
asp.net TripleDES加密、解密算法
Asp.net中防止用户多次登录的方法
asp.net Repeater取得CheckBox选中的某行某个值的c#写法
asp.net DataGridView导出到Excel的三个方法[亲测]
C#,winform,ShowDialog,子窗体向父窗体传值
asp.net学习中发现的比较完整的流程
ASP.net 页面被关闭后,服务器端是否仍然执行中?
asp.net Context.Handler 页面间传值方法
asp.net xml序列化与反序列化
asp.net实例代码protected override void Render(HtmlTextWriter writer)
asp.net(c#)捕捉搜索引擎蜘蛛和机器人

ASP.NET 中的 如何在网站级别动态更改主题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 79 ::
收藏到网摘: n/a

在做一个项目的时候,要求客户可以选择自己喜欢的主题。简单查了一下资料,思路上基本是这样的:
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