如何在<ItemTemplate>(.NET)中获得备用样式?

Ste*_*ven 3 .net css repeater itemtemplate modulo

我在这个网站上使用EPiServer.不像asp:DataList,EPiServer:PAgeList没有AlternatingItemTemplate.

所以我需要创建一个计数器并在我的增加这个计数器<ItemTemplate>,然后使用模数返回很多css样式附加到文章/页面.

模数"代码" - 来自后面的代码:

 return index % 2 == 0 ? "styleA" : "styleB";
Run Code Online (Sandbox Code Playgroud)

但我不能在计数器上加一个计数器来增加它<ItemTemplate>.

任何建议非常感谢!

更新
这是我的EPiServer页面列表控制器:

 <EPiServer:PageList runat="server" id="pageList" SortDirection="Ascending" Count="4" OnDataBinding="pageList_OnDataBinding">
    <HeaderTemplate>
        <ul id="articleList1">
    </HeaderTemplate>

    <ItemTemplate>
            <li>
                   <h2><a href="<%# Eval("LinkURL") %>" title="<%# Eval("PageName") %>"><EPiServer:Property id="Property1" PropertyName="PageName" runat="server" /></a></h2>
                   <div class="articleImage">
                      <%# ArticleImage(Container.CurrentPage)%>                            
                   </div>
                   <div class="introText">
                      <%# IntroText(Container.CurrentPage)%> 
                   </div>
                   <div class="readMore floatRight"><a href="<%# Eval("LinkURL") %>" title="<%# Eval("PageName") %>">Les mer</a></div>
            </li>
    </ItemTemplate>

    <FooterTemplate>
        </ul>     
    </FooterTemplate>
 </EPiServer:PageList> 
Run Code Online (Sandbox Code Playgroud)

答案
我决定使用jQuery比使用.NET更简单.这不是我的首选解决方案,但它确实有效.我使用的代码是这样的:

if (jQuery("#articleList1").length > 0) {
    jQuery('li:odd').addClass("odd");
}
Run Code Online (Sandbox Code Playgroud)

Rip*_*ppo 7

对于转发器,我这样做: -

<itemtemplate>
<tr class='<%#(Container.ItemIndex % 2 == 0) ? "odd" : "even" %>'>
Run Code Online (Sandbox Code Playgroud)

编辑项目数据绑定事件保持跟踪行计数器...

private int counter;
protected void list_databound(object sender, RepeaterItemEventArgs e)
    {
     if ((e.Item.ItemType == ListItemType.Item) || ((e.Item.ItemType == ListItemType.AlternatingItem))
     {
      counter++;
      //find server control and use counter as modulus
     }
    }
Run Code Online (Sandbox Code Playgroud)

在这里编辑你去... OOPS需要是一个HtmlTableRow !!

HtmlTableRow row = e.Item.FindControl("row") as HtmlTableRow;
if (row != null) 
  row.Attributes.Add("class", ((counter % 2 == 0) ? "odd": "even") );
Run Code Online (Sandbox Code Playgroud)

你也需要这个

<tr id="row" runat="server" ...
Run Code Online (Sandbox Code Playgroud)