使用asp:repeater将标记放在第N个项目上

时间:2010-05-21 16:33:30

标签: asp.net repeater

我想将<br>标记仅放在第6个项目的前面。

我该怎么做?

<asp:Repeater ID="rptWinner" runat="server">
    <HeaderTemplate></HeaderTemplate>
    <ItemTemplate>
     <%# GetWinnerID(Container.DataItem) %>
     </ItemTemplate>
    <FooterTemplate></FooterTemplate>
</asp:Repeater>

2 个答案:

答案 0 :(得分:1)

试试这个:

<asp:Repeater ID="rptWinner" runat="server">
    <HeaderTemplate></HeaderTemplate>
    <ItemTemplate>
         <%# GetWinnerID(Container.DataItem) %>
         <%# Container.ItemIndex == 4 ? "<br />" : string.Empty %>
     </ItemTemplate>
    <FooterTemplate></FooterTemplate>
</asp:Repeater>

这会在第五个元素之后添加<br />标记(在第6个元素之前)。

答案 1 :(得分:0)

首先,您需要添加占位符来保存BR,或添加标签。然后你需要绑定OnItemDataBound事件并进行检查:

protected void rptWinner_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.Index == 6)
    {
        PlaceHolder ph = e.Item.FindControl("myPlaceholder") as PlaceHolder;
        ph.Controls.Add(new LiteralControl("<br>"));
    }
}

或者那种效果;)