国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET2.0中themes、Skins輕松實現網站換膚!

2019-11-18 17:17:18
字體:
來源:轉載
供稿:網友

可能有些朋友還不是很清楚themes、skins。下面先介紹下themes、skins.。

一、簡介:
一看Themes、Skins這2名字就都知道是用來做什么的了吧,下面就說下它是做什么的(怎么都知道了還說,~_~),利用Themes我們可以很容易的更改控件、頁面的風格,而不需要修改我們的代碼和頁面文件。
Themes文件被單獨的放在1個App_Themes文件夾下面,與你的程序是完全分開的。

二、怎么使用Themes和Skins:
先看個非常簡單的實例:

App_Themes/default/1.skin文件代碼:

<asp:Label Font-Bold="true" ForeColor="Red" runat="server" />
default.aspx:文件代碼:

<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head id="Head1" runat="server">
  <title>Page with Example Theme Applied</title>
</head>
<body>
  <form id="form1" runat="server">
      <asp:Label ID="Label1" runat="server" Text="Hello 1" /><br />
      <asp:Label ID="Label2" runat="server" Text="Hello 2" /><br />
  </form>
</body>
</html>

可以看到我們在default.aspx并沒有寫如何的控制style的代碼,但運行取發現label上的字都變成了粗體紅色了,這就是1個最基本的theme例子。

App_Themes文件夾:
App_Themes文件夾位于程序的根目錄下,App_Themes下必須是Theme名稱的子文件夾,子文件夾中可以包含多個.skin和.
CSS文件。下圖中建立2個Theme,名稱分別為default和default2:


使用themes
1、在1個頁面中應用Theme:
      如果想在某1個頁面中應用Theme,直接在aspx文件中修改<%@ Page Theme="..." %>,比如你想這個頁面應用default2 theme,設置<%@ Page Theme="default2" %>就OK

2、在所有頁面應用同1個Theme:
      如果要在所有頁面上使用相同的Theme,在web.config中的<system.web>節點下加上句<pages theme="..."/>

3、讓控件不應用Theme:
        第1個例子中我們看到了2個Label的風格都變了,就是說.skin文件中的風格在頁面上所有Label都起作用了。但有時我們希望某1個Label不應用.skin中的風格,這時你只需設置Label的EnableTheming屬性為false的時候就可以了。
        也許你還想不同的label顯示不同的風格,你只需設置label的SkinID屬性就可以,見下面的實例:
 App_Themes/default/1.skin

<asp:label runat="server" font-bold="true" forecolor="Red" />
<asp:label runat="server" SkinID="Blue" font-bold="true" forecolor="blue" />
deafult.aspx

<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head id="Head1" runat="server">
  <title>Page with Example Theme Applied</title>
</head>
<body>
  <form id="form1" runat="server">
      <asp:Label ID="Label2" runat="server" Text="Hello 2" SkinID="Blue" /><br />
      <asp:Label ID="Label3" runat="server" Text="Hello 3" /><br />
  </form>
</body>
</html>
運行后就會發現2個label顯示的風格不一樣了。

4、其他方法:
前面已經說了在aspx文件頭使用 <%@ Page Theme="..." %> 來使用theme,而用這個方法應用theme中的風格將會覆蓋你寫在aspx中的控件屬性style。比如:
 App_Themes/default/1.skin

<asp:Label Font-Bold="true" ForeColor="Red" runat="server" />
default.aspx

<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

<html xmlns="<head id="Head1" runat="server">
</head>
<body>
  <form id="form1" runat="server">
      <asp:Label ID="Label1" runat="server" Text="Hello 1" /><br />
      <asp:Label ID="Label2" runat="server" Text="Hello 2" ForeColor="blue" />
  </form>
</body>
</html>
運行結果,所有的label的forecolor都為red。

 而使用<%@ Page StyleSheetTheme="..." %>應用theme就不會覆蓋你在aspx文件中寫的屬性style:

控件應用style屬性的順序如下:
a、StyleSheetTheme引用的風格
b、代碼設定的控件屬性(覆蓋StyleSheetTheme)
c、Theme引用的風格(覆蓋前面2個)

theme中包含CSS:
        theme中也可以使用.css文件,當你把.css文件放在1個theme目錄下后,在用到了這個theme的頁面中自動會應用你的.css的

三、后臺代碼輕松為網站換府膚
        前面講的都是在aspx文件或web.config中應用theme,而在blog這樣的每個用戶都有不同的skin的網站中用上面的方法來實現換skin顯然是不方便的。
       下面就介紹怎么在后臺代碼中動態的引用theme來解決上面的情況,theme必須在page被請求的最早期就應用上,所以我們必須在Page_
PReInit事件中寫代碼,代碼很簡單,就1句:
        Page.Theme = "..."; 
這里我們只要從數據庫中去讀取每個用戶設置的不同theme名就可以輕松實現每個用戶都有不同的skin了。

------------------------------------------
以上都是個人的看法和體會,如有不妥處,還請大家多多指點,謝謝!

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 施甸县| 镇雄县| 远安县| 聂拉木县| 明水县| 湘西| 英山县| 巨野县| 涟水县| 九龙城区| 凤阳县| 济源市| 黑山县| 敖汉旗| 辽阳市| 盐池县| 饶阳县| 伊春市| 清原| 高陵县| 东平县| 新绛县| 比如县| 丰县| 烟台市| 陆河县| 长春市| 宝应县| 开平市| 宜兰县| 扎赉特旗| 丽水市| 长葛市| 汕头市| 益阳市| 公安县| 宁明县| 西乌珠穆沁旗| 青州市| 夹江县| 鄯善县|