方法一:在GridView中添加一個模板列
<asp:TemplateField HeaderText="序號">
<ItemTemplate>
<%#GridView1.PageIndex * GridView1.PageSize + GridView1.Rows.Count + 1%>
</ItemTemplate>
</asp:TemplateField>
說明:Gridview1爲Id,PageSize爲每頁顯示的條數。該方法,支持分頁。
方法二:
proctected void Gridiew1_RowDataBound(object sender,GridviewRowEventArgs e)
{
if(e.Row.RowIndex!=-1)
{
int id=e.Row.RowIndex+1;
e.Row.Cells[0].Text=id.ToString();
}
}
說明,這裏將GridView中的第一列設爲編號列,前臺就是一個普通的<asp:BoundField DataField="Sort_By" HeaderText="產品編號" />
。此方法的缺陷是不支持分頁,意識是當翻到第二頁時,編號又會從一開始。下面就修改方法二
使其支持分頁,代碼如下,當然也是在RowDataBound事件裏了:
if(e.Row.RowIndex!=-1)
{
int id = GridView1.PageIndex * GridView1.PageSize + e.Row.RowIndex +1;
//int id=e.Row.RowIndex+1;
e.Row.Cells[0].Text=id.ToString();
}
原理就是,用GridView的頁索引 * 每頁顯示的條數 + 當前頁的行索引。
注意,頁索引和行索引都是從0開始的,但是前者正好合適,後者需要加1