广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-05-04 21:21:31 次阅读 稿源:互联网
    广告
    在做一个项目的时候,要求客户可以选择自己喜欢的主题。简单查了一下资料,思路上基本是这样的:
    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

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告