jsp页面
<table id="dg"></table><!--数据网络-->
<div id="pp" style="background:#efefef;border:1px solid #ccc;"></div><!--分页-->
js中数据分页查询
$('#dg').datagrid({
title:'用户列表',
iconCls:'icon-edit',//图标
width: 700,
height: 'auto',
nowrap: false,
striped: true,
border: true,
collapsible:false,//是否可折叠的
fit: true,//自动大小
url:BASEPATH+'/user/showUser.do',
remoteSort:false,
singleSelect:false,//是否单选
pagination:true,//分页控件
pageSize: 10, //分页大小
pageNumber:1, //第几页显示(默认第一页,可以省略)
pageList: [10, 20, 30], //设置每页记录条数的列表
rownumbers:true,//行号
frozenColumns:[[
{field:'ck',checkbox:true}
]],
toolbar: [{
text: '添加',
iconCls: 'icon-add',
handler: function() {
openDialog("add_dialog","add");
}
}, '-', {
text: '修改',
iconCls: 'icon-edit',
handler: function() {
openDialog("add_dialog","edit");
}
}, '-',{
text: '删除',
iconCls: 'icon-remove',
handler: function(){
delAppInfo();
}
}],
columns:[[
{field:'id',title:'id',width:200,align:'left',height:50,hidden:true},
{field:'name',title:'姓名',width:200,align:'left',height:50},
{field:'password',title:'密码',width:200,align:'left',height:50},
{field:'age',title:'年龄',width:200,align:'left',height:50}
]]
});
//设置分页控件
var p = $('#dg').datagrid('getPager');
$(p).pagination({
beforePageText: '第',//页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '第{from}到{to}条,共{total}条',
});
请求中会携带参数page和rows 当前页和每页显示记录数,在Mysql中limit 从哪条记录开始 (page-1)*rows ,显示条数 rows
查询完车返回list集合 并需要总记录数total
所以controller中分页方法:
@ResponseBody //响应到前台
@RequestMapping("/showUser")
public Map<String, Object> showUser(@RequestParam Map<String, String> m){
Integer total=userService.getCount(); //返回数据条数总值
List<User> userList=userService.getUserByPage(m);
Map<String, Object> map = new HashMap<String, Object>();
if(null != userList && userList.size() >0 ){
map.put("rows", userList);
map.put("total", total);
}
return map;
}
接口实现类:已省略接口...
public List<User> getUserByPage(Map<String, String> m) {
Map<String, Integer> map = new HashMap<String, Integer>();
int page=Integer.parseInt(m.get("page"));
int rows=Integer.parseInt(m.get("rows"));
//计算分页的起始页
map.put("page", (page-1)*rows);
//这里传入数据总条数
map.put("rows", rows);
return userDao.getUserByPage(map);
}
<select id="getUserByPage" parameterType="java.util.Map" resultType="com.li.pojo.User">
select *from user_t order by age limit ${page},${rows}
</select>
<select id="getCount" resultType="int">
select count(*) from user_t
</select>