ASP.net Repeater отримує поточний індекс, покажчик або лічильник


78

питання насправді просте. Чи є спосіб отримати доступ до поточного вказівника / лічильника для регулятора asp Repeater.

У мене є список з елементами, і я хотів би, щоб один із стовпців ретрансляторів (він повторюється та таблиця html) був приблизно таким ...

Пункт 1 | трохи інформації

Пункт 2 | трохи інформації

... і так далі

1 і 2 - лічильник.


Відповіді:


160

Для відображення номера елемента на ретрансляторі ви можете використовувати Container.ItemIndexвластивість.

<asp:repeater id="rptRepeater" runat="server">
    <itemtemplate>
        Item <%# Container.ItemIndex + 1 %>| <%# Eval("Column1") %>
    </itemtemplate>
    <separatortemplate>
        <br />
    </separatortemplate>
</asp:repeater>

так, це фокус. thx за допомогою, ви повинні знати, де шукати :)
Jan W.

Дякуємо за цю корисну пораду. :)
Sedat Kumcu

6

Додайте елемент керування мітками до пункту ItemTemplate вашого ретранслятора . Обробляти подію OnItemCreated.

ASPX

<asp:Repeater ID="rptr" runat="server" OnItemCreated="RepeaterItemCreated">
    <ItemTemplate>
        <div id="width:50%;height:30px;background:#0f0a0f;">
            <asp:Label ID="lblSr" runat="server" 
               style="width:30%;float:left;text-align:right;text-indent:-2px;" />
            <span 
               style="width:65%;float:right;text-align:left;text-indent:-2px;" >
            <%# Eval("Item") %>
            </span>
        </div>
    </ItemTemplate>
</asp:Repeater>

Код позаду:

    protected void RepeaterItemCreated(object sender, RepeaterItemEventArgs e)
    {
        Label l = e.Item.FindControl("lblSr") as Label;
        if (l != null)
            l.Text = e.Item.ItemIndex + 1+"";
    }

+1, тому що я шукав щось на зразок Item.ItemIndex у CodeBehind. Я шукав Item.Index, але ніякої радості ...
Ресурс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.