EasyUI学习笔记---Datagrid真分页

EasyUI Datagrid组件在我看来功能还是很强大的,在我使用过程中遇到分页请求的问题困扰了一天才解决,下面我就把我遇到的问题分享一下

//datagrid数据表格渲染

$("#dg").datagrid({
loader: function(param, success, error) {
var pageNumber = param.page;
var pageSize = param.rows;
$.ajax({
type: "get",
url: url,
dataType: 'jsonp',
data: "pageNum=" + pageNumber + "&pageSize=" + pageSize,
success: function(data) {
if(data.code == 0) {
var arr = data.result.content;
$("#dg").datagrid('loadData', { total: data.result.page.totalRecord, rows: arr })
}
},
error: function() {
error.apply(this, arguments);
}
});
}
})

 

传入的参数有param, success, error可选

这里我主要用到了param,param有param.page(页码)和param.rows(每页显示行数)两个属性,由于页面载入之后就要进行查询,所以这个参数是必须的;

一 遇到的第一个问题是跨域,这个在之前的文章有些过,这里就不赘述了;

二 其次就是请求回的数据怎么渲染到表格中,由于是真分页,所以每次查询的数据只是当前页面的数据,并不是所有的数据,但是页脚显示数据总数必须是所有数据,这样才能就行分页。

最后通过查看资料发现,loadData方法可以传入一个json格式的数据$("#dg").datagrid('loadData', { total: data.result.page.totalRecord, rows: arr }),这样就解决了数据渲染分页请求的问题

三 由于我启用了loadMsg属性,即在请求后台数据的时候会显示正在加载的状态,但是请求成功之后此状态并未隐藏,最后通过设置

onLoadSuccess: function(data) {
//查询成功是隐藏正在加载状态。
$(this).datagrid("loaded");
}

在数据加载成功之后隐藏正在加载状态

四 点击下一页进行查询

//点击下一页
$('#dg').datagrid('getPager').pagination({
//刷新按钮执行的操作
onBeforeRefresh: function() {},
onSelectPage: function(pageNumber, pageSize) {
$("#dg").datagrid('loading'); //显示加载信息
$.ajax({
type: "get",
url: url,
dataType: 'jsonp',
data: "pageNum=" + pageNumber + "&pageSize=" + pageSize ,
success: function(data) {
if(data.code == 0) {
//数据返回成功后填充到表格中
var arr = data.result.content;
$("#dg").datagrid('loadData', { total: data.result.page.totalRecord, rows: arr })
}
},
error: function() {
error.apply(this, arguments);
}
})
}
});

转载于:https://www.cnblogs.com/xzsty/p/6510379.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值