背景
对于数据较少,无需后台分页的需求,可使用以下解决方案
方案
MiniUI提供了监听事件,特别方便即可实现。
源码
mini.parse();
var grid = mini.get("datagridTable");
// 获取所有数据和总记录数 { total: 100, data: [...] }
var dataResult = {};
dataResult.total = ret.length;
dataResult.data = ret;
// 监听分页前事件,阻止后自行设置当前数据和分页信息
grid.on("beforeload", function (e) {
e.cancel = true;
var pageIndex = e.data.pageIndex, pageSize = e.data.pageSize;
fillData(pageIndex, pageSize, dataResult, grid);
});
// 第一次设置
fillData(0, grid.getPageSize(), dataResult, grid);
// 分页填充细节处理
function fillData(pageIndex, pageSize, dataResult, grid) {
var data = dataResult.data, totalCount = dataResult.total;
var arr = [];
var start = pageIndex * pageSize, end = start + pageSize;
for (var i = start, l = end; i < l; i++) {
var record = data[i];
if (!record) continue;
arr.push(record);
}
grid.setTotalCount(totalCount);
grid.setPageIndex(pageIndex);
grid.setPageSize(pageSize);
grid.setData(arr);
}
结束
以上代码,填充后台数组json即可完成前台分页。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。