上一節我們講了,DataGrid擷取資料的一些用法,這一節講DataGrid的分頁
DataGrid将傳遞“目前頁碼”“每頁條數”
控制器擷取參數之後交給BLL層處理邏輯和分頁,傳回總頁數和目前頁的資料
最後交給DataGrid處理
課外:從此次前端的處理速度我看出,沒有以前的JQGrid控件的處理資料快。
首先在讓DataGrid支援分頁,我們需要加入幾個屬性
是否啟用分頁:pagination 預設是false
每頁數量:pageSize 預設10
可選擇每頁數量:pageList 預設[10,20,30,40,50]
排序字段:sortName 預設null
排序類型:sortOrder 預設asc
OK加入後的代碼變成這樣

Index
預覽一下
實際已經分頁,但是不正确的,每一頁的資料一樣。我們要根據分頁的參數去取
我們打開谷歌浏覽器,看他傳遞了什麼
OK我們控制器要根據他傳遞的參數寫同樣的參數名稱,否則擷取不到
看我們的SysSampleController 下的GetList方法,加入參數

SysSampleController
BLL代碼修改(IBLL也要修改參數 List<SysSampleModel> GetList(int page, int rows, string sort, string order,ref int total);)

SysSampleBLL
我們要在BLL層傳回目前查詢的全部條數,還要傳回目前頁得資料
這裡我們用到“ref”關鍵字:傳遞引用,簡單了解下,我們把一個參數count傳遞給BLL,BLL再把它傳遞給DAL,假設count=0加入ref在BLL處理是10,那麼傳回就是
10如果沒有加ref那麼count還是0,這等于一個持久的可指派的變量,現在可以分頁和傳回查詢條件的條數了
到DataGrid浏覽一下,OK沒問題。
大家看出這樣太麻煩了,代碼太不漂亮了,我們把常用的參數給封裝了。這個是我封裝類庫

GridPager
把這個類放到App.Common, 我們的App.Common終于用到了
再次修改Controller的GetList

和修改BLL的GetList 還要修改IBLL --List<SysSampleModel> GetList(ref GridPager pager);

代碼漂亮了不少,預覽一下,還是正确的效果了。
好,這一講我們就講到這裡,我不知道這種講解大家是否看得很反感,因為這很循序漸進,是要這樣好呢?還是直接上好代碼就可以了?大家響應一下