1

我想知道是否有可能让 ASP.NET AJAX 自定义用户控件“注册”它对 CSS 文件的使用,就像对 JS 文件一样。?

例如:实现 IScriptControl 接口允许脚本管理器调用 GetScriptReferences(),CSS 文件是否有类似的东西?

4

1 回答 1

2

不。

您可以编写自己的方法来使用嵌入式资源并生成 html 以将它们写入页面。

但是,作为最佳实践方法,我不建议这样做。您应该明确区分样式和标记。如果您想编写一个依赖于样式表的自定义控件,那么我建议您提供一个默认的 css 文件以及您的控件。

编辑(回答评论中的问题)

您可以运行此代码以将 CSS 文件的引用添加到您的页面(在运行时)。请注意,由于您使用的是RegisterClientScriptBlock 方法,因此您可以管理插入重复。以下是该方法链接的摘录:

客户端脚本由其密钥和类型唯一标识。具有相同键和类型的脚本被认为是重复的。页面中只能注册一个具有给定类型和密钥对的脚本。尝试注册已注册的脚本不会创建该脚本的副本。

StringBuilder sb = new StringBuilder();

sb.Append(@"<link rel=""stylesheet"" type=""text/css"" href=""");
sb.Append(this.Page.ClientScript.GetWebResourceUrl(this.GetType(), resourceName));
sb.Append(@""" />");

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyCSS", sb.ToString());
于 2010-01-12T22:56:17.363 回答