在aspx中动态命名类

时间:2012-11-19 21:23:16

标签: asp.net html

我的目标是创建一系列可点击的按钮,每个按钮都有一个独特的图像。目前这些图像存储为CSS中的类,这显示很好 - 我可以通过GImg EGCImg1,GImg EGCImg2等等来调用它们。但是,我想让它动态,所以我可以设置X个按钮而不是复制/粘贴代码(我讨厌做)。以下是唯一有用的'我能找到的资源,但遗憾的是他们的建议并不适合我。

http://forums.asp.net/t/1619813.aspx/1

http://www.codeproject.com/Articles/14033/Dynamic-CSS-Styling-in-ASP-NET-A-Flexible-Approach

所以基本上下面的代码,当我手动设置{0}时将完美地工作。如果我设置了这个值,它们甚至可以正确列出 - 只是所有图像都相同。

仅<%string.Format(" GImg EGCImg {0}",i); %GT;坏了。

<% for (int i = 0; i < 3; i++){ %>
  <li>
     <label class="baseTemplate">
        <b>
           <%=Html.RadioButtonFor(x => x.Input.MailTemplate, i)%>
        </b><span class="<% string.Format("GImg EGCImg{0}", i); %>"><span class="CheckMark"/>
            </span>
      </label>
   </li><% } %>

欢迎任何和所有建议, 谢谢!

3 个答案:

答案 0 :(得分:1)

一个选项是使用内联css,因此不使用class =“classname”,而是使用style =“background:red;”。这是最简单的方法,无需更改太多代码。您还可以在头部生成动态css,或在外部链接到生成的css文件。

答案 1 :(得分:1)

您在=

之后错过了<%

此外,您可以执行以下操作:

<span class="GImg EGCImg<%= i.ToString() %>"><span class="CheckMark"/></span>

不要使用String.Format方法,只需在类的末尾附加i即可。开销也少了。

=就像在说Response.Write

答案 2 :(得分:0)

您可以使用Attributes.Add和Attributes.Remove

aspx文件

<span id="YourContainer" runat="server">Report Type</span>

c#代码背后的

YourContainer.Attributes.Add("class", "active");
YourContainer.Attributes.Remove("class");