广

ASP.NET

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

    Asp.Net下通过切换CSS换皮肤

    2018-04-03 22:13:51 次阅读 稿源:互联网
    广告

      换皮肤的方式有很多种,最简单的通常就是切换页面CSS,而CSS通常写在外部CSS文件里。那么切换css其实就是更换html里的link href路径。我在网上搜索了下。一般有两种方式:

      1,在页面放一个holder控件。然后用编程方式把当前用户的风格css link写入页面。
      2,通过反射机制,逐个控件设置css样式。
      上面两种方式都挺麻烦的,
      第一种需要在每个页面上放一个holder控件。类似的做法还有把link标签加runat=server的做法。页面多了,都比较麻烦。
      第二种不用考虑了。性能编程效率上问题多多。

      记得以前在学习DNN的时候,在他里面发现了一种修改form里默认的action地址的方式,直接参考下。还不错:
      直接重写Render事件
              protected override void Render(System.Web.UI.HtmlTextWriter writer)
              {
                  StringWriter sw = new StringWriter() ;
                  HtmlTextWriter htmlWriter = new HtmlTextWriter(sw) ;

                  base.Render(htmlWriter) ;
                  //当前用户选择的风格css
                  string css = "<link href="css url" rel="stylesheet" type="text/css">" ;

                  string html = sw.ToString() ;
                  int startPoint = html.IndexOf("</head>", StringComparison.CurrentCultureIgnoreCase);
                  if (startPoint > 0)
                  {
                      html = html.Insert(startPoint, css);
                  }

                  writer.Write(html) ;
              }
      把这个放在每个页面的基类PageBase里。那就方便多了。
      当然,如果不想在让每个page都继承自定义的基类的方式,那也可以通过在HttpModule里写。也很方便.
      一处写好,页页受用呀。

      http://www.cnblogs.com/kwklover/archive/2007/01/03/610822.html

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

    广告
    广告
    广告