使用easyUI datagrid分页
我用了比较简单的sturts2和mybatis结合的小测试demo实现的。
一、使用easyUI datagrid分页注意事项及原理:
1.EasyUI的DataGrid要求返回的JSON数据集是这样的形式:
【“total”:总记录数量, "rows":数据记录数组】
{"total":14,"rows":[{"deptNo":20,"empName":"SMITH","empNo":7369,"hireDate":345830400000,"job":"CLERK","mgr":7902,"sal":800},{"comm":300,"deptNo":30,"empName":"ALLEN","empNo":7499,"hireDate":351446400000,"job":"SALESMAN","mgr":7698,"sal":1600},{"comm":500,"deptNo":30,"empName":"WARD","empNo":7521,"hireDate":351619200000,"job":"SALESMAN","mgr":7698,"sal":1250},{"deptNo":20,"empName":"JONES","empNo":7566,"hireDate":354988800000,"job":"MANAGER","mgr":7839,"sal":2975},{"comm":1400,"deptNo":30,"empName":"MARTIN","empNo":7654,"hireDate":370454400000,"job":"SALESMAN","mgr":7698,"sal":1250}]}
2. 页面(jsp)从后台(action)取数据时,默认的传递了两个参数,page和rows。
page:当前第几页,如同我们自己定义的pageSize。就是页面所处的位置。
rows:即一页中显示多少条数据,如同自己定义的pageCode。
因此,在后台调用分页方法时,传入的pageSize,pageCode就变成了page、rows。
3. easyUI的DataGrid要求返回的是JSON数据集形式的字符串,不是普通的字符串,它得到的后台数据要放到map集合中,并以ajax形式异步提交过去。例如下面代码:
Pager pager = new EmpDao().pagerShow(page, Integer.parseInt(rows));//自己写的分页方法
Map<String, Object> jsonMap = new HashMap<String, Object>();//定义map集合
jsonMap.put("rows", pager.getEmpList());//一页中显示的数据,放入map集合
jsonMap.put("total", pager.getTotalCount());//数据的总记录数,放入map集合
//将有时间格式的json字符串格式化
String json = JSON.toJSONStringWithDateFormat(jsonMap, "yyyy-MM-dd");
//将json字符串异步提交到前台。
try {
PrintWriter out = response.getWriter();
out.write(json);