第一種方式,直接在Aspx頁面GridView模板列中.這種的缺點是到第二頁分頁時又重新開始了.
<asp:TemplateField HeaderText="序號" InsertVisible="False">
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" Width="5%" />
<ItemTemplate>
<%#Container.DataItemIndex+1%>
</ItemTemplate>
</asp:TemplateField>
第二種方式分頁時進行了計算,這樣會累計向下加.
<asp:TemplateField HeaderText="序號" InsertVisible="False">
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" Width="5%" />
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# this.MyListGridView.PageIndex * this.MyListGridView.PageSize + this.MyListGridView.Rows.Count + 1%>'/>
</ItemTemplate>
</asp:TemplateField>
還有一種方式放在cs代碼中,和第二種相似.
<asp:BoundField HeaderText="序號" >
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" Width="5%" />
</asp:BoundField>
protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex != -1)
{
int indexID = this.myGridView.PageIndex * this.myGridView.PageSize + e.Row.RowIndex + 1;
e.Row.Cells[0].Text = indexID.ToString();
}
}
Repeater自身就帶有這個擷取當前行號的屬性,而無需程式員綁定這個行號,Container.ItemIndex 就可以擷取了,見下樣本:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
行號:<%#Container.ItemIndex %>
</ItemTemplate>
</asp:Repeater>
如果上面的樣本中,Repeater已經綁定了資料,並且資料的至少為一筆記錄,那麼行號就會顯示出來,行號從零開始,如果想改為從1開始,那麼可以將以上的代碼改為Container.ItemIndex + 1,見如下樣本:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
行號:<%#Container.ItemIndex + 1 %>
</ItemTemplate>
</asp:Repeater>
就可以了。
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%# Container.ItemIndex + 1%>
<%# (Container as RepeaterItem).ItemIndex + 1%>
</ItemTemplate>
</asp:Repeater>
轉載自:http://blog.163.com/wwwoop2003@126/blog/static/42004852200891654142842/