天天看點

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

上一節我們講了,DataGrid擷取資料的一些用法,這一節講DataGrid的分頁

DataGrid将傳遞“目前頁碼”“每頁條數”

控制器擷取參數之後交給BLL層處理邏輯和分頁,傳回總頁數和目前頁的資料

最後交給DataGrid處理

課外:從此次前端的處理速度我看出,沒有以前的JQGrid控件的處理資料快。

首先在讓DataGrid支援分頁,我們需要加入幾個屬性

是否啟用分頁:pagination 預設是false

每頁數量:pageSize 預設10

可選擇每頁數量:pageList 預設[10,20,30,40,50]

排序字段:sortName 預設null

排序類型:sortOrder 預設asc

OK加入後的代碼變成這樣

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

Index

預覽一下

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

實際已經分頁,但是不正确的,每一頁的資料一樣。我們要根據分頁的參數去取

我們打開谷歌浏覽器,看他傳遞了什麼

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

OK我們控制器要根據他傳遞的參數寫同樣的參數名稱,否則擷取不到

看我們的SysSampleController 下的GetList方法,加入參數

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

SysSampleController

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

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

SysSampleBLL

 我們要在BLL層傳回目前查詢的全部條數,還要傳回目前頁得資料

這裡我們用到“ref”關鍵字:傳遞引用,簡單了解下,我們把一個參數count傳遞給BLL,BLL再把它傳遞給DAL,假設count=0加入ref在BLL處理是10,那麼傳回就是

10如果沒有加ref那麼count還是0,這等于一個持久的可指派的變量,現在可以分頁和傳回查詢條件的條數了

到DataGrid浏覽一下,OK沒問題。

大家看出這樣太麻煩了,代碼太不漂亮了,我們把常用的參數給封裝了。這個是我封裝類庫

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

GridPager

把這個類放到App.Common, 我們的App.Common終于用到了

再次修改Controller的GetList

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

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

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

代碼漂亮了不少,預覽一下,還是正确的效果了。

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(8)-MVC與EasyUI DataGrid 分頁

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