从ASP.NET服务器控件动态添加CSS文件

6mw9ycah  于 2022-11-19  发布在  .NET
关注(0)|答案(4)|浏览(128)

我有一个自定义控件,我想动态插入一个指向样式表的链接。
可能不是今年最好的解决方案,但它需要做。你知道怎么做吗?
每次我尝试时,页。标题为空。

twh00eeo

twh00eeo1#

下面是您通常通过编程添加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);
}

您可能需要在head标签中放置runat="server"

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

ru9i0ody2#

若要避免在网页中加入控件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,您可以检查它是否已经存在,并确保只加入一次。

2g32fytz

2g32fytz3#

如果你是动态css在head标签它不会工作,你需要粘贴css链接标签在body标签然后它可能工作

g0czyy6m

g0czyy6m4#

我知道这个问题已经有答案了。我最近也遇到了同样的错误。在javascript/Css的头上有〈% %〉标签会给予你错误。删除头上的ASP标签〈% %〉可以修复这个错误。
我得到了同样的错误在一个奇怪的方式,我有css文件在母版页,它曾经工作的第一页,但在第二页重定向后,我得到了错误。所以我删除了css链接从头部标签,并将其粘贴在结束形式标签。
http://italez.wordpress.com/2010/06/22/ajaxcontroltoolkit-calendarextender-e-strana-eccezione/

相关问题