您的位置:首页 > 运维架构 > 网站架构

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

2012-07-23 15:55 246 查看
在做一个项目的时候,要求客户可以选择自己喜欢的主题。简单查了一下资料,思路上基本是这样的:

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)

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

详细出处参考:/article/1275955.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: