首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

GridView 自動產生序號欄位:TemplateField + DataItemIndex 完美支援分頁

     編輯:關於ASP.NET

GridView 顯示資料時常需加上流水號 (1,2,3...)。最簡潔做法:使用 `TemplateField` 結合 `Container.DataItemIndex`,自動處理分頁情況下的連續編號。

完整標記語法

<asp:TemplateField HeaderText="序號">
    <ItemTemplate>
        <asp:Label ID="lblSeq" runat="server"
            Text='<%# Container.DataItemIndex + 1 %>' />
    </ItemTemplate>
</asp:TemplateField>

原理解析

  • `Container` 為 `GridViewRow` 命名容器。
  • `DataItemIndex` 回傳**資料來源中的全域索引** (0-based),跨頁面自動累加,無需手動計算 `PageIndex * PageSize + RowIndex`。
  • 若需自訂起始號碼,可改為 `<%# Container.DataItemIndex + 1 + (GridView1.PageIndex * GridView1.PageSize) %>` (但 `DataItemIndex` 已內含此邏輯)。

進階:支援排序後仍維持原始資料順序編號

若允許使用者點擊標題排序,`DataItemIndex` 會反映排序後順序。若需固定顯示資料庫原始順序 (如 ID),請在資料來源查詢加入 `ROW_NUMBER() OVER (ORDER BY ID) AS Seq`,再繫結 `Seq` 欄位。

適用控制項

同樣技巧適用於 `ListView` (`Container.DataItemIndex`)、`Repeater` (`Container.ItemIndex`)、`DataList` (`Container.ItemIndex`)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved