代码之家  ›  专栏  ›  技术社区  ›  Sungguk Lim

使用asp:repeater在第n项上放置标记

  •  1
  • Sungguk Lim  · 技术社区  · 14 年前

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

    我该怎么做?

    <asp:Repeater ID="rptWinner" runat="server">
        <HeaderTemplate></HeaderTemplate>
        <ItemTemplate>
         <%# GetWinnerID(Container.DataItem) %>
         </ItemTemplate>
        <FooterTemplate></FooterTemplate>
    </asp:Repeater>
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Oleks    14 年前

    试试这个:

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

    这增加了 <br /> 标记第五个元素之后(在第六个元素之前)。

        2
  •  0
  •   JustLoren    14 年前

    首先,您需要添加一个占位符来容纳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>"));
        }
    }
    

    或者有类似效果的东西;