GridView控件实现支持分页的自动编号

有时候会遇到这样的情况,就是需要对GridView表格显示的结果增加一列自动递增编号列,以标示每一行的序号。要实现这一功能,首先在 GridView 第一列加入一个 TemplateField,并在 TemplateField 的 ItemTemplate 加入一个 Label (ID=lblNo),*.aspx 对应代码如下:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="Flag,ID" DataSourceID="SqlDataSource1" EmptyDataText="无记录。">

<Columns>

<asp:TemplateField HeaderText="编号">

<ItemTemplate>

<asp:Label ID="lblNo" runat="server" Text="Label"></asp:Label>

</ItemTemplate>

<ItemStyle Wrap="True" />

<HeaderStyle Wrap="False" />

</asp:TemplateField>

</Columns>

</asp:GridView>

 

 然后在 GridView 的 RowDataBound 事件中,设定每一列的 lblNo 的 Text 属性值为 RowIndex 1(因为 RowIndex 起始编号为 0 ,所以每一行的自动编号为 RowIndex+1) 。

 


Label olabel;

if (e.Row.RowType == DataControlRowType.DataRow)

{

olabel = (Label)e.Row.Cells[0].FindControl("lblNo");

olabel.Text = Convert.ToString(GridView1.PageIndex * GridView1.PageSize+e.Row.RowIndex+1);

}

 

posted @ 2012-04-27 15:12  狼啸天原  阅读(241)  评论(0编辑  收藏  举报