GridView實現 自動編號(轉)

方法一:在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章