假如數據庫有10000條記錄,默認SQL是分頁把這10000條記錄都取出來,然後利用GridView內置功能分頁,顯示出來,那麽只顯示20條,SQL也是取出1000條,而自定義分頁則是利用SQL,使用20條,就從數據庫裏去20條,其他的不取,所以,效率較高,但是實現稍微麻煩點。
假設妳要實現類似如下壹個自定義產品分頁列表
數據庫主要設計如下字段
那麽自定義SQL分頁需要思考如下幾個問題:
(1)總***有多少條記錄。(可用
select
count(*)
from
Products
得到
10000條)
(2)頁面大小NumRows。(也就是每頁記錄數,例如
20條也壹頁)
由上面(1)和(2)就可以得出可以分多少頁。
10000/20=500頁。
(3)當前是第幾頁
startRowIndex。
例如用戶點擊到第3頁,每頁20條,那麽第4頁就是
從
3*20+1=61開始計算。
知道了上面參數,還需要知道SQL提供了壹個
Row_Number函數,他可以把數據庫每行增加壹個索引,通過比較
Row在@startRowInx
和
@StartRowIndex+@NumRows-1就可以獲取分頁的記錄數。具體如下
當取到上面的數據後,就可以自己build上壹頁,下壹頁等頁面了。