无论如何,在循环中交替更改一行的样式

时间:2014-06-04 10:16:14

标签: c# html tags

在我的ascx文件中,我使用Repeater为表创建行。所以基本上我只重复一行并将数据填充到:

<asp:Repeater ID="companyRepeater" runat="server">
 <ItemTemplate>
<tr class = "DGItemStyle"  id="myresultsRow1" runat="server">
<td  style="padding:0.5em;" align="center"><%#Eval("compnSN1") %></td>  
 <td  style="padding:0.5em;"><%#Eval("compnAddress1") %></td> 
</tr>
</Itemtemplate>
</asp:Repeater>

但我需要每次都改变行的样式,来自:

 CssClass="DGItemStyle"

 CssClass="DGAlternatingItemStyle" 

然后一次又一次。

所以我尝试的是替换:class =“DGItemStyle”by:&lt;%#Eval(“compnStyle1”)%&gt; ,我还用字符串

填充compnStyle1
CssClass="DGItemStyle" and CssClass="DGAlternatingItemStyle"

或者在我的代码隐藏中。 但看起来标签不接受这个解决方案。它显示了这个错误:

Parser Error Message: The server tag is not well formed.

那么我该如何归档呢?

2 个答案:

答案 0 :(得分:3)

使用Repeater.AlternatingItemTemplate

<asp:Repeater ID="companyRepeater" runat="server">
<AlternatingItemTemplate>
             <tr class = "DGAlternatingItemStyle"  id="myresultsRow1" runat="server">
<td  style="padding:0.5em;" align="center"><%#Eval("compnSN1") %></td>  
 <td  style="padding:0.5em;"><%#Eval("compnAddress1") %></td> 
</tr>
          </AlternatingItemTemplate>

<ItemTemplate>
<tr class = "DGItemStyle"  id="myresultsRow1" runat="server">
<td  style="padding:0.5em;" align="center"><%#Eval("compnSN1") %></td>  
 <td  style="padding:0.5em;"><%#Eval("compnAddress1") %></td> 
</tr>
</Itemtemplate>
</asp:Repeater>

检查此链接

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.alternatingitemtemplate%28v=vs.110%29.aspx

答案 1 :(得分:1)

来自MSDN

<AlternatingItemTemplate>
   <tr>
       <td style="background-color:Aqua">
          <b><%# Container.DataItem %></b> 
       </td>
   </tr>
</AlternatingItemTemplate>

<ItemTemplate>
   <tr>
       <td style="background-color:Silver"> 
          <%# Container.DataItem %> 
       </td>
   </tr>
</ItemTemplate>