Asp.net

從 ASP.NET 伺服器控制項動態添加 CSS 文件

  • March 21, 2012

我有一個自定義控制項,我想動態插入指向樣式表的連結。

可能不是今年最好的解決方案,但需要完成。知道怎麼做嗎?

每次我嘗試時,Page.Header 都是空的。

以下是通常以程式方式添加 CSS 的方式:

protected void Page_Init(object sender, EventArgs e)
{
   var link = new HtmlLink();
   link.Href = "~/styles/main.css";
   link.Attributes.Add("rel", "stylesheet");
   link.Attributes.Add("type", "text/css");
   Page.Header.Controls.Add(link);
}

您可能需要runat="server"head標籤中添加一個:

<head runat="server">
   <title>Add CSS example</title>
</head>

為了避免在頁面中添加控制項 10 次時出現多個樣式表的問題,對上面的程式碼稍作改動:

string styleSheet = "stylesheetName.css";
if (this.Page.Header.FindControl(styleSheet) == null)
{
   HtmlLink cssLink = new HtmlLink();
   cssLink.ID = styleSheet;
   cssLink.Href = "~/styles/" + styleSheet;
   cssLink.Attributes.Add("rel", "stylesheet");
   cssLink.Attributes.Add("type", "text/css");
   this.Page.Header.Controls.Add(cssLink);
}

通過給控制項一個 ID,您可以檢查它是否已經存在,因此確保您只添加一次。

引用自:https://stackoverflow.com/questions/2640711