熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Asp.Net下通過切換CSS換皮膚

2013-11-13 09:56:54  來源: .NET編程 
    換皮膚的方式有很多種最簡單的通常就是切換頁面CSS而CSS通常寫在外部CSS文件裡那麼切換css其實就是更換html裡的link href路徑我在網上搜索了下一般有兩種方式
  
  在頁面放一個holder控件然後用編程方式把當前用戶的風格css link寫入頁面
  通過反射機制逐個控件設置css樣式
  上面兩種方式都挺麻煩的
  第一種需要在每個頁面上放一個holder控件類似的做法還有把link標簽加runat=server的做法頁面多了都比較麻煩
  第二種不用考慮了性能編程效率上問題多多
  
  記得以前在學習DNN的時候在他裡面發現了一種修改form裡默認的action地址的方式直接參考下還不錯
  直接重寫Render事件
   protected override void Render(SystemWebUIHtmlTextWriter writer)
   {
   StringWriter sw = new StringWriter() ;
   HtmlTextWriter htmlWriter = new HtmlTextWriter(sw) ;
  
   baseRender(htmlWriter) ;
   //當前用戶選擇的風格css
   string css = <link href=\css url\ rel=\stylesheet\ type=\text/css\> ;
  
   string html = swToString() ;
   int startPoint = htmlIndexOf(</head> StringComparisonCurrentCultureIgnoreCase);
   if (startPoint > )
   {
   html = htmlInsert(startPoint css);
   }
  
   writerWrite(html) ;
   }
  把這個放在每個頁面的基類PageBase裡那就方便多了
  當然如果不想在讓每個page都繼承自定義的基類的方式那也可以通過在HttpModule裡寫也很方便
  一處寫好頁頁受用呀
  
  ;
  
From:http://tw.wingwit.com/Article/program/net/201311/12080.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.