天天看点

构建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 分页

好,这一讲我们就讲到这里,我不知道这种讲解大家是否看得很反感,因为这很循序渐进,是要这样好呢?还是直接上好代码就可以了?大家响应一下