金灿灿的朝晖,渐渐染红了东方的天际,高高的黄山主峰被灿烂的云霞染成一片绯红。太阳在朝霞的迎接中,露出了红彤彤的面庞,霎时,万道金光透过树梢给水面染上了一层胭脂红。
在做一个项目的时候,要求客户可以选择自己喜欢的主题。简单查了一下资料,思路上基本是这样的: 1.数据库客户表有一个字段(暂时取名为Theme),专门记录客户喜欢的主题。
2.当客户第一次登录后,网站呈现的是默认的主题模式,创建Session,查询数据库并为其赋值(当然对于新客户Theme字段有默认值为Default)。根据客户选择的主题不同,在更改网站的主题同时,将此主题存入数据库。以便再次登录后显示此主题。 那么关键的一点是如何可以动态得更改整个网站的主题呢? 我采用这个方案:
1.创建一个从System.Web.UI.Page继承的ThemePage类,此类重写OnPreInit方法: 1ProtectedOverridesSubOnPreInit()SubOnPreInit(ByValeAsEventArgs)
2MyBase.OnPreInit(e)
3
4IfNotSession("Theme")IsNothingThen
5Page.Theme=Session("Theme")
6EndIf
7EndSub
8
2.将其他所有的page页都继承自ThemePage类,登录页可以除外。 3.在切换主题页里这么处理: 1IfddlTheme.SelectedIndex=0Then
2Session("Theme")="Default"'UsethedefaultTheme
3Else
4Session("Theme")=ddlTheme.SelectedValue
5EndIf
6UpdateTheme()'Storetodatabase
刷新当前页以显示新的主题可以这么做: 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
到此这篇关于如何在网站级别动态更改主题就介绍到这了。成功与我们的距离并不遥远,只要肯静下心来做好手边的事,不要一下子就想取得成功。路是一步步走出来的,想好现在该做什么,然后努力地去完成,你就会离成功越来越近。更多相关如何在网站级别动态更改主题内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!