有没有人做过 jquery easyui datagrid 的分页啊!从数据库读取数据,然后分页的!

能发我吗?谢谢,87038008
2024-12-15 11:32:58
推荐回答(2个)
回答1:

datagrid 是需要一个类来支持的,这个类可以转换成Json数据提供dategrid调用。
datagrid分页的时候会将下一页多少条到多少条以参数的形式传到后台,然后通过存储过程或者sql语句。根据开始条和结束条 把中间的数据取出来,然后在datagrid上显示,是这个形式。
而不是想楼主理解的那样,把所有的数据都取出来,然后分页,那样太多弊端,比如说大数据量操作。就会显得不优势了。

select t.* from (select rownum r ,* from 表名 t )where t.r >开始条 and t.r <结束

回答2:

从数据库读取所有数据,在前端分页,我有

//分页;
function pagerFilter(data) {
if (data == null || (typeof data == "undefined")) return;
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({
buttons: [{ //导出按钮
iconCls: 'icon-save',
handler: function () {
window.location.href = "UserRoleProperty_Excel";
}
}],
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;
}
$(function () {
$('#dg').datagrid({ loadFilter: pagerFilter });
});