use*_*794 6 asp.net custom-server-controls
我需要从自定义控件中添加到页面.我不能使用样式表(.css),因为我正在使用url(...)并需要解析url.
现在我正在做:
Page.Header.Controls.Add(new LiteralControl("<style type='text/css'>.xyz { color: blue; }</style>"));
Run Code Online (Sandbox Code Playgroud)
但我希望触摸更优雅的东西?
我想这对于这个问题来说并不是一个糟糕的解决方案。如果您有一个外部样式表文件,这段代码将完成这项工作:
HtmlLink cssRef = new HtmlLink();
cssRef.Href = "styles/main.css";
cssRef.Attributes["rel"] = "stylesheet";
cssRef.Attributes["type"] = "text/css";
Page.Header.Controls.Add(cssRef);
Run Code Online (Sandbox Code Playgroud)
另一个想法是编写您自己的 ASP.NET ServerControl “HtmlInlineStyle”,因此您可以这样调用它(脚本标记将由您的服务器控件完成):
Page.Header.Controls.Add(
New HtmlInlineStyle(".xyz { width:300px;padding-left:10px }");
Run Code Online (Sandbox Code Playgroud)
此博客条目和评论显示了一些替代方案(ScriptManager.RegisterClientScriptBlock)。但在我看来你的解决方案是可以的。