Asp.net
從 ASP.NET 伺服器控制項動態添加 CSS 文件
我有一個自定義控制項,我想動態插入指向樣式表的連結。
可能不是今年最好的解決方案,但需要完成。知道怎麼做嗎?
每次我嘗試時,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,您可以檢查它是否已經存在,因此確保您只添加一次。