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