by Andrei Hetel
6. February 2008 12:45
Piece of code presented here simply add a column, not related with content of the repeater, which index current line of data.
Repeater definition:
<asp:Repeater id="RB" runat="server">
<HeaderTemplate>
 <tr>
<td align="right">#</td>
<td>User</td>
<td align="right">Points</td>
 </tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td align="right"><asp:Label ID="t5" runat="server"></asp:Label></td>
<td><%#DataBinder.Eval(Container.DataItem, "UserName")%></td>
<td align="right"><%#DataBinder.Eval(Container.DataItem, "TotalPoints")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
In code behind, first declare a variable:
Private CounterOverallTop As Integer = 1
Don’t forget to bind your data to the repeater, something like:
RB.DataSource = … your data source
RB.DataBind()
Following code will populate index column.
Protected Sub RB_ItemDataBound(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) _
Handles RB.ItemDataBound
If (e.Item.ItemType = ListItemType.Item) Or _
(e.Item.ItemType = ListItemType.AlternatingItem) Then
DirectCast(e.Item.FindControl("t5"), Label).Text = CounterOverallTop
CounterOverallTop += 1
End If
End Sub