web-dev-qa-db-fra.com

ASP.net Repeater obtenir l'index, le pointeur ou le compteur actuel

la question est vraiment simple. Existe-t-il un moyen d'accéder au pointeur/compteur actuel pour un contrôle asp Repeater.

J'ai une liste d'éléments et j'aimerais qu'une des colonnes de répéteurs (elle répète et table html) soit quelque chose comme ...

Point 1 | quelques infos

Point 2 | quelques infos

... etc

1 et 2 étant le comptoir.

77
Jan W.

Pour afficher le numéro d’article sur le répéteur, vous pouvez utiliser le Container.ItemIndex propriété.

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

Ajoutez un contrôle d’étiquette à votre ItemTemplate du répéteur. Gérer l'événement 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>

Code Derrière:

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