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

首頁 > 編程 > .NET > 正文

ASP.NET 2.0中輕松實現網站換膚

2024-07-10 13:11:08
字體:
來源:轉載
供稿:網友

  一、簡介:

  利用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" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<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了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桐庐县| 松阳县| 葫芦岛市| 江山市| 岳阳县| 朝阳区| 大埔区| 巫溪县| 阳江市| 阿合奇县| 龙川县| 大田县| 栾川县| 鄂州市| 仪征市| 金平| 罗定市| 萝北县| 闽侯县| 台中县| 广饶县| 徐汇区| 女性| 息烽县| 广灵县| 开封县| 罗定市| 潮安县| 阿坝县| 南江县| 汕头市| 开平市| 涡阳县| 西乌珠穆沁旗| 江阴市| 西乌| 偃师市| 开阳县| 河源市| 沐川县| 清河县|