我需要从自定义控件中添加到页面。我无法使用样式表(.css),因为我正在使用url(...),并且需要解析该url。

现在我正在做:

Page.Header.Controls.Add(new LiteralControl("<style type='text/css'>.xyz { color: blue; }</style>"));

但是我希望有一些更优雅的感觉吗?

最佳答案

我想这不是解决问题的好方法。如果您有一个外部样式表文件,则这段代码将完成工作:

HtmlLink cssRef = new HtmlLink();
cssRef.Href = "styles/main.css";
cssRef.Attributes["rel"] = "stylesheet";
cssRef.Attributes["type"] = "text/css";
Page.Header.Controls.Add(cssRef);

另一个想法是将自己的ASP.NET ServerControl 编写为“HtmlInlineStyle”,以便您可以这样命名(脚本标记将由您的服务器控件来完成):
Page.Header.Controls.Add(
   New HtmlInlineStyle(".xyz { width:300px;padding-left:10px }");

blog entry和注释显示了一些替代方法(ScriptManager.RegisterClientScriptBlock)。但是我认为您的解决方案是可以的。

关于ASP.NET 2.0向控件中的页面动态添加样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/585070/

10-15 02:46