隐藏

jquery easyui datagrid pageNumber 设置导致两次请求的解决方案

发布:2014/12/8 14:52:59作者:管理员 来源:本站 浏览次数:2177

一、现象:

$('#table').datagrid({
url: '/get/data/path/to/your/server',
pageNumber: 2,
pageSize: 10,
...
});

当手动设置 pageNumber >= 2 时,查看网络请求会有两次,并且第二次的请求的 pageNumber == 1;

二、原因:

jquery.easyui.min.js 1.3.4 的 7821-7828 行代码;
因为分页控件初始化参数 total == 0, pageNumber == 1,而初次请求第二页的参数与控件初始化参数不一致,导致了再次请求:_5dc(_545);

此处代码的原意是解决一个问题:
当页面刷新时,请求的数据总数发生变化,需要更新 pagebar 的显示;

三、解决方案:

7822 行(请注意版本 1.3.4 jquery.easyui.min.js):
_54a.pagination("refresh",{total:data.total});
修改为:
_54a.pagination("refresh",{pageNumber:opts.pageNumber||_54b.pageNumber,total:data.total});

ok,~