前言
为了符合后面更新后的重构系统,文章于2016-11-1日重写
EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台
实现
首先要让DataGrid支持分页,我们需要在JS Datagrid中加入下列几个属性
- 是否启用分页:pagination 默认是false
- 每页数量:pageSize 默认10
- 可选择每页数量:pageList 默认[10,20,30,40,50]
- 排序字段:sortName 默认null
- 排序类型:sortOrder 默认asc
OK加入后的代码变成这样
预览一下
实际已经分页,但是不正确的,每一页的数据一样。我们要根据分页的参数去取
查看技巧
OK我们控制器要根据他传递的参数写同样的参数名称,否则获取不到
看我们的SysSampleController 下的GetList方法,加入参数
BLL代码修改(IBLL也要修改参数 List<SysSampleModel> GetList(int page, int rows, string sort, string order,ref int total);)
我们要在BLL层返回当前查询的全部条数,还要返回当前页得数据
补脑:ref关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用ref参数,则方法定义和调用方法都必须显式使用ref关键字。
大家看出这样太麻烦了,代码太不漂亮了,我们把常用的参数给封装了。
分装分页
把这个类放到Apps.Common, 我们的Apps.Common终于用到了
再次修改Controller的GetList
和修改BLL的GetList 还要修改IBLL --List<SysSampleModel> GetList(ref GridPager pager);
代码漂亮了不少,预览一下,还是正确的效果了。
总结
文章中一直演示做法,这种方式看起来非常反感,但是都是为了更好更仔细的了解系统,为后面快速开发做铺垫