我需要从自定义控件中添加到页面。我无法使用样式表(.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/