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

Max*_*ler 8 css asp.net webforms

我有一个自定义控件,我想动态插入一个样式表的链接.

可能不是今年最好的解决方案,但需要完成.知道怎么做吗?

我每次尝试时,Page.Header都为空.

Dar*_*rov 19

以下是通常以编程方式添加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);
}
Run Code Online (Sandbox Code Playgroud)

您可能需要runat="server"head标记中添加:

<head runat="server">
    <title>Add CSS example</title>
</head>
Run Code Online (Sandbox Code Playgroud)


pau*_*ulH 8

要在向页面添加控件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);
}
Run Code Online (Sandbox Code Playgroud)

通过为控件提供ID,您可以检查它是否已存在,因此请确保只添加一次.