将CSS样式表与ASP.NET自定义控件链接

Sau*_*nda 7 css asp.net custom-controls stylesheet

我正在开发一个自定义控件,它是表和按钮的组合.我还有一个外部CSS样式表,它定义了这些元素的样式.

Control的类型是CompositeControl,在名称空间MyControls下,类的定义在类文件CompositeControl.cs中,生成的dll文件名为MyControls.dll

样式表称为styles.css,与CompositeControl.cs位于同一文件夹中

对于每个控件(Button,TableCell等),我已经指定了CssClass属性.

当我将此控件添加到我的ASP.NET网页并在localhost运行时检查HTML源代码时,我看到所有控件标记都正确设置了class属性,但源代码不包含<link>包含外部所需的标记样式表.

有人能告诉我还需要做些什么才能使这项工作成功吗?谢谢.

Can*_*var 7

外部源文件不会自动包含在页面中.您应该在控件中手动将它们注册到您的页面:

HtmlLink cssSource = new HtmlLink();
cssSource.Href = Page.ClientScript.GetWebResourceUrl(this.GetType(), "styles.css");
cssSource.Attributes["rel"] = "stylesheet";
cssSource.Attributes["type"] = "text/css";
Page.Header.Controls.Add(cssSource);
Run Code Online (Sandbox Code Playgroud)

还尝试使用ClientScriptManager.GetWebResourceUrl来获取嵌入资源的位置.以下是引用嵌入式资源的示例.