ASP.net Repeater obtiene índice, puntero o contador actual

78

la pregunta es realmente simple. ¿Hay alguna forma de acceder al puntero / contador actual para un control de repetidor asp?

Tengo una lista con elementos y me gustaría que una de las columnas repetidoras (se repite y la tabla html) sea algo así como ...

Elemento 1 | algo de información

Elemento 2 | algo de información

... y así

1 y 2 son el contador.

Jan W.
fuente

Respuestas:

160

Para mostrar el número de artículo en el repetidor, puede usar la Container.ItemIndexpropiedad.

<asp:repeater id="rptRepeater" runat="server">
    <itemtemplate>
        Item <%# Container.ItemIndex + 1 %>| <%# Eval("Column1") %>
    </itemtemplate>
    <separatortemplate>
        <br />
    </separatortemplate>
</asp:repeater>
Binoj Antony
fuente
sí, ese es el truco. gracias por la ayuda, tienes que saber dónde buscar :)
Jan W.
Gracias por este útil consejo. :)
Sedat Kumcu
6

Agregue un control de etiqueta a ItemTemplate de su repetidor . Controlar el evento 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>

Código detrás:

    protected void RepeaterItemCreated(object sender, RepeaterItemEventArgs e)
    {
        Label l = e.Item.FindControl("lblSr") as Label;
        if (l != null)
            l.Text = e.Item.ItemIndex + 1+"";
    }
TheVillageIdiot
fuente
+1 porque estaba buscando algo como Item.ItemIndex en CodeBehind. Busqué Item.Index pero sin alegría ...
Recurso