如前教程所述,分頁可用兩種方法實現:
Enable Paging;但瀏覽頁面時雖僅見少量資料,ObjectDataSource 每次仍讀取所有資料預設分頁功能吸引人(勾選核取方塊即完成),但每次讀取所有資料,大量資料或高併發用戶下不適用。此時必須用自訂分頁達到更好效能。
自訂分頁重點:撰寫僅回傳所需資料的查詢。幸運的是 SQL Server 2005 提供新關鍵字撰寫讀取所需資料查詢。本教程學習在 GridView 中使用此關鍵字實現自訂分頁。自訂分頁介面與預設分頁相同,但翻頁效能差數個數量級。
注意: 自訂分頁效能提升取決於資料總量與資料庫負載。教程最後將用數據說明效能優勢。
資料分頁時,頁面顯示資料取決於請求頁碼與每頁筆數。想像 81 筆產品分頁,每頁 10 筆。瀏覽第 1 頁需產品 1-10,第 2 頁需 11-20,以此類推。
三個相關變數決定讀取資料與分頁顯示:
預設分頁中,Start Row Index 由頁索引與每頁筆數得出,Maximum Rows 即每頁筆數。無論呈現哪頁皆讀取所有資料,所有列索引已知,取得 Start Row Index 無價值。總筆數可透過 DataTable 筆數取得。
自訂分頁僅回傳從 Start Row Index 開始的 Maximum Rows 筆記錄。兩個關鍵點:
後兩步將撰寫相關 SQL,並在 DAL、BLL 完成對應方法。
學習回傳顯示頁面所需資料前,先看如何取得總筆數(配置介面需用到)。使用 SQL COUNT 聚合函數。例:回傳 Products 表總筆數:
SELECT COUNT(*) FROM Products