ASP.net Repeater ruft den aktuellen Index, Zeiger oder Zähler ab

78

Die Frage ist wirklich einfach. Gibt es eine Möglichkeit, auf den aktuellen Zeiger / Zähler für eine asp Repeater-Steuerung zuzugreifen?

Ich habe eine Liste mit Elementen und möchte, dass eine der Repeater-Spalten (sie wiederholt sich und eine HTML-Tabelle) so etwas wie ...

Punkt 1 | einige Infos

Punkt 2 | einige Infos

... und so weiter

1 und 2 sind der Zähler.

Jan W.
quelle
Mögliches Duplikat der alternativen
Richard Ev

Antworten:

160

Um die Artikelnummer auf dem Repeater anzuzeigen, können Sie die Container.ItemIndexEigenschaft verwenden.

<asp:repeater id="rptRepeater" runat="server">
    <itemtemplate>
        Item <%# Container.ItemIndex + 1 %>| <%# Eval("Column1") %>
    </itemtemplate>
    <separatortemplate>
        <br />
    </separatortemplate>
</asp:repeater>
Binoj Antony
quelle
Ja, das ist der Trick. Danke für die Hilfe, du musst wissen, wo du suchen musst :)
Jan W.
Vielen Dank für diesen nützlichen Tipp. :)
Sedat Kumcu
5

Fügen Sie der ItemTemplate Ihres Repeaters ein Beschriftungssteuerelement hinzu . Behandeln Sie das Ereignis 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 dahinter:

    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
quelle
+1, weil ich nach etwas wie Item.ItemIndex in CodeBehind gesucht habe. Ich suchte nach Item.Index, aber keine Freude ...
Ressource