在asp.net中动态更改css属性的值

时间:2009-07-15 07:43:27

标签: asp.net web-controls dynamic

如何在运行时更改css属性值,如所有h1 color =“blue”和所有p color =“green”。如果有人知道,请帮助我!

4 个答案:

答案 0 :(得分:7)

非常简单(我假设你想要做这个服务器端) - 将标题声明为runat = server并给它一个id:

<h1 runat="server" id="someHeading">Blah</h1>

然后你可以在后面的代码中以编程方式操作它,如下所示:

someHeading.Style.Add("color", "blue");

这将呈现以下HTML:

<h1 id="someHeading" style="color:blue;">Blah</h1>

您可能希望这样做不同并在样式表中定义样式并在运行时动态更改类。

更新 - 当您动态更改它时,以下内容可能更合适:

someHeading.Style["color"] = "red";

我相信其他人会发布一个答案,说明客户端如何做到这一点。 : - )

查看服务器端的另一个(可能更好)选项是使用皮肤和主题。阅读这些内容的ASP.NET FAQ以了解更多信息。

答案 1 :(得分:1)

在JQuery中你可以简单地使用

$('h1').css("color","blue");

ASP.Net代码隐藏没有选择器将css应用于多个html标记,因为只有在执行大部分代码后才会生成HTML。这发生在Page_PreRender事件中。

你可以做的是获取渲染的html并执行一些搜索或修改,使用正则表达式或普通搜索替换。

我建议你使用javascript来做这件事,因为在Page_PreRender事件中修改渲染的html肯定会导致你以后出现问题而且基本上没有完成。

答案 2 :(得分:0)

我相信他对页面上的每个项目都有意义。我建议在当前样式表之后将标题添加到标题中,然后使用以下代码添加内联样式:

<asp:Literal ID="litInlineStyles" runat="server" EnableViewState="false" Visible="false">
  <style type="text/css">
  h1 
  {
    color: {h1Colour}
  }
  p
  {
    color: {pColour}
  }
  </style>
</asp:Literal>

我故意禁用了视图状态和可见性,因此每次页面加载要替换{h1Colour}和{pColour}的内容以及将文字设置为可见时都必须声明。

这应该有助于指明你正确的方向。

答案 3 :(得分:0)

请尝试下面的代码,我会为你工作:

someHeading.Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "red");