轉帖|其它|編輯:郝浩|2010-09-08 17:59:05.000|閱讀 896 次
概述:ASP.NET 2.0 中增加了內建的 MasterPage 的支持,這對我們來說是一個很大的便利。然而經過一段時間的使用,我發現 MasterPage 并不是那么完美:嵌套的 MasterPage 不能支持設計時界面,以及下面要提到的Content Page 中增加 CSS 的問題。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
ASP.NET 2.0 中增加了內建的 MasterPage 的支持,這對我們來說是一個很大的便利。然而經過一段時間的使用,我發現 MasterPage 并不是那么完美:嵌套的 MasterPage 不能支持設計時界面,以及下面要提到的Content Page 中增加 CSS 的問題。
通常,在沒有 2.0 之前,我們在頁面里要增加一個 CSS 引用的語法如下:
<link rel="stylesheet" href="css/test.css" />
原本是很平常的做法。但是在一個 MasterPage 的子頁面中,出現了一個很尷尬的局面,就是:我們該把上述代碼放到什么位置?
因為 MasterPage 的具體內容頁面中,只能定義一個個的 <asp:Content /> 標簽的內容。我們按照通常的做法在 aspx 里面無法對頁面的 <header/> 內容進行控制。而這個 <link/> 標簽又必須放在 <header/> 內。我試驗過在 <asp:Content /> 內部加入這行代碼,但是會提示出錯的。
同時,我們也無法在 MasterPage 的 <header/> 內部放好一個 ContentPlaceHolder 用于將來放入 CSS 的引用代碼。
因此我的做法是定義了一個 helper 類如下:
static public class ControlHelper
{
static public void AddStyleSheet(Page page, string cssPath)
{
HtmlLink link = new HtmlLink();
link.Href = cssPath;
link.Attributes["rel"] = "stylesheet";
link.Attributes["type"] = "text/css";
page.Header.Controls.Add(link);
}
}
這樣,在具體頁面,我們就可以通過如下代碼添加 CSS 引用:
protected void Page_Load(object sender, EventArgs e)
{
ControlHelper.AddStyleSheet(this.Page, "css/projectPage.css");
}
并且,這個代碼支持在具體內容頁面,或者一個嵌套的 Master Page 中使用。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載