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

ASP.NET
安装IE补丁后ASP.NET将无法运行
在ASP.Net中应用Javascript
用ASP.NET 1.1 新特征防止Script攻击
ASP.NET中在线用户统计的简单实现及讨论
ASP.NET中将数据输出到Excel
在ASP.NET中从SQL Server检索图片
ASP.NET系统用户权限设计与实现
利用ASP.NET技术动态生成HTML页面
大数量查询分页显示 微软的解决办法
ASP.NET WEB页面多语言支持解决方案
ASP.NET 2.0里轻松获取数据库连接统计数据
ASP.NET通过DSO访问分析服务器的权限问题
ASP实现禁止从外部提交数据
Asp.Net 使用 GDI+ 绘制3D饼图入门篇源码
在ASP.NET中点击一个按钮后让它变灰的简单方法
利用JS在asp.net中实现左导航页的隐藏
asp.net中一次更新DATAGRID中所有记录
用Asp.net屏蔽F5、Ctrl+N、Alt+F4
asp.net中用C#实现站点计数器用户控件
认识ASP.NET配置文件Web.config

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 100 ::
收藏到网摘: 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