EasyUI Pagination 分页没有效果?分页功能的实现讲解
本次某个项目中用到Easyui+SSM框架,而easyui-Pagination在前后台分页的写法比较多,但是相对固定,于是我在这里直接写一份关于easyui下的分页教程,省得以后到处找,也方便各位参考。
当然本文是基于SSM+Easyui而且是有一定基础的朋友。
1.分页介绍
web开发中所说的分页,实际上是分为假分页和真分页这么一说。
1.1 假分页
假分页就是将所有要显示的数据全部查询出来后,进行前台的分页,这么做适合数据量较小的Web项目。
后台代码仅仅是将从数据库里查询到的数据转化未Json字符串类型传到前台就可以了。
前台需要写:
<script>
$('#dg').datagrid({ loadFilter: pagerFilter }).datagrid({
url: '/FreshStudentMaintain/test' //加载数据
});
// 分页数据的操作
function pagerFilter(data) {
if (typeof data.length == 'number' && typeof data.splice == 'function') { // is array
data = {
total: data.length,
rows: data
}
}
var dg = $(this);
var opts = dg.datagrid('options');
var pager = dg.datagrid('getPager');
pager.pagination({
onSelectPage: function (pageNum, pageSize) {
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh', {
pageNumber: pageNum,
pageSize: pageSize
});
dg.datagrid('loadData', data);
}
});
if (!data.originalRows) {
data.originalRows = (data.rows);
}
var start = (opts.pageNumber - 1) * parseInt(opts.pageSize);
var end = start + parseInt(opts.pageSize);
data.rows = (data.originalRows.slice(start, end));
return data;
}
</script>
后台只需要写:
p