我正在使用EasyUI 和 Liferay MVC portlet。我在同一个 datagrid 上应用了服务器端分页和 DataGrid 过滤器。没有过滤器 DataGrid 分页工作正常。但是当我应用过滤器时,分页的下一页上没有显示任何数据。经过大量努力,我发现在 DataGrid 过滤器插件的 JS ( datagrid-filter.js ) 中,他们为分页完成了以下代码:
if (opts.pagination){
var dg = $(this);
var pager = dg[name]('getPager');
pager.pagination({
onSelectPage:function(pageNum, pageSize){
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',{
pageNumber:pageNum,
pageSize:pageSize
});
//dg.datagrid('loadData', state.filterSource);
dg[name]('loadData', state.filterSource);
},
onBeforeRefresh:function(){
//dg('reload');
dg[name]('reload');
return false;
}
});
if (name == 'datagrid'){
var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
var end = start + parseInt(opts.pageSize);
data.rows = data.rows.slice(start, end);
} else {
var topRows = [];
var childRows = [];
$.map(data.rows, function(row){
row._parentId ? childRows.push(row) : topRows.push(row);
});
data.total = topRows.length;
var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
var end = start + parseInt(opts.pageSize);
data.rows = $.extend(true,[],topRows.slice(start, end).concat(childRows));
}
}
现在,如果我评论这一行:
dg[name]('loadData', state.filterSource);
然后分页正常工作,但过滤器没有任何响应。我该如何解决这个问题?