如何在网站级别动态更改主题
程序员文章站
2023-11-01 18:09:04
在做一个项目的时候,要求客户可以选择自己喜欢的主题。简单查了一下资料,思路上基本是这样的: 1. 数据库客户表有一个字段(暂时取名为theme),专门记录客户喜欢...
在做一个项目的时候,要求客户可以选择自己喜欢的主题。简单查了一下资料,思路上基本是这样的:
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
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