你可以这样做Container.DisplayIndex
, or Container.DataItemIndex
,如果 ID 不是来自数据库等。
关键是这样的:class="Amazing-<%#Container.DisplayIndex + 1 %>"
.
If recordNumber
确实来自外部数据源,您也可以这样做:class='Amazing-<%# Eval("YourDatabaseIDColumn") %>'
.
如果您对数据源进行分页,则 DisplayIndex 和 DataItemIndex 会有所不同。 DisplayIndex 是始终从当前页面开始的运行索引,DataItemIndex 是整个数据源中的运行编号。
这是一个例子:
隐藏代码:
//just to represent something like a db table with an ID and a description
Pair[] data = new Pair[] { new Pair(123, "row1"), new Pair(124, "row2"), new Pair(125, "row3"), new Pair(126, "row4"), new Pair(127, "row5"), new Pair(128, "row6"), new Pair(129, "row7"), new Pair(130, "row8"), new Pair(131, "row9"), new Pair(132, "row10") };
lstTopRanks.DataSource = data;
lstTopRanks.DataBind();
ASPX:
<asp:ListView ID="lstTopRanks" runat="server">
<LayoutTemplate><asp:PlaceHolder ID="ItemPlaceHolder" runat="server"></asp:PlaceHolder></LayoutTemplate>
<ItemTemplate>
<div class="Amazing-<%#Container.DisplayIndex + 1 %>">
DisplayIndex: <b><%#Container.DisplayIndex %></b>;
DataItemIndex: <b><%#Container.DataItemIndex %></b>,
ID and Text: <i><%#((Pair)Container.DataItem).First %>, <%#((Pair)Container.DataItem).Second %></i>
</div>
</ItemTemplate>
</asp:ListView>
<asp:DataPager ID="DataPagerProducts" runat="server" PagedControlID="lstTopRanks" PageSize="3" >
<Fields>
<asp:NextPreviousPagerField ShowFirstPageButton="True" ShowNextPageButton="False" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ShowLastPageButton="True" ShowPreviousPageButton="False" />
</Fields>
</asp:DataPager>
结果: