ASP.NET 2.0 将样式动态添加到控件中的页面

标签 asp.net custom-server-controls

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

相关文章:

asp.net - 用户控件渲染: write link to current page?

asp.net - 如何将自定义控件的呈现行为从跨度更改为

asp.net - 是否可以强制 WebControl 呈现为 <div> 而不是 <span>?

asp.net - 进度条不是一个函数

jQuery Full Calendar - 如何防止用户在非工作时间添加事件?

asp.net - 如何制作自定义版本的 AjaxControlToolkit.TabContainer

ASP.NET 自定义控件 - 回发的替代方案?

.net - ASP.NET MVC:OutputCache和http header -缓存控件

c# - Entity Framework 中复杂类型属性名称的别名

asp.net - Whatsapp 共享链接无法在移动设备上使用