ASP.net Repeater는 현재 인덱스, 포인터 또는 카운터를 가져옵니다.


78

질문은 정말 간단합니다. ASP Repeater 컨트롤에 대한 현재 포인터 / 카운터에 액세스하는 방법이 있습니까?

항목이있는 목록이 있고 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>

네, 그게 트릭입니다. 도움을 들으, 당신은보기 위하여 어디 :) 알고있다
월 W.

이 유용한 팁에 감사드립니다. :)
Sedat Kumcu

6

Repeater의 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+"";
    }

CodeBehind에서 Item.ItemIndex와 같은 것을 찾고 있었기 때문에 +1했습니다. Item.Index를 찾았지만 기쁨은 없었습니다 ...
Resource
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.