layui实现数据分页功能(ajax异步)
作者:闭包旅人时间:2026-10-23 09:57:57浏览:501
本文介绍了如何使用layui实现数据分页功能,通过ajax异步加载数据。文章详细讲解了引入layui资源、编写html页面代码、定义showReocrd()函数异步加载数据以及分页js的配置。重点介绍了count、limit、curr等参数的含义,以及jump方法中obj参数的使用。最后推荐了使用layui的table组件自带分页功能(异步,含条件查询)。
layui实现数据分页功能(ajax异步)
近期项目需集成LayUI分页组件,官方示例不够直观,经实践摸索后整理此方案。
第一步:引入LayUI必要资源文件。
<link rel="stylesheet" href="${ctxPath}/vendor/layui-v2.4.5/layui/css/layui.css" >
<script src="${ctxPath}/vendor/layui-v2.4.5/layui/layui.js"></script>
<script src="${ctxPath}/vendor/jquery.min.js"></script>//引入jquery包
第二步:编写HTML页面结构代码。
<div class="layui-main g-main">
<div class="layui-row">
<div class="layui-col-xs12">
<blockquote class="layui-elem-quote">
当前系统排名:<span class="layui-badge-rim badge-number">第${scoreRecordUtil.rank}名</span>,
总积分:<span class="layui-badge-rim badge-number">${scoreRecordUtil.totalScore}分</span>,
和上一名相差:<span class="layui-badge-rim badge-number">${scoreRecordUtil.differenceTotal}分</span>,继续加油!
</blockquote>
<table class="layui-table">
<thead>
<tr>
<th>积分类型</th>
<th>积分原因</th>
<th>积分值</th>
<th>创建时间</th>
</tr>
</thead>
<tbody>
//存放分页加载数据
</tbody>
</table>
<div class="page"></div>
</div>
</div>
</div>
第三步:定义showReocrd()函数以实现数据异步加载。
function showReocrd(pageNo,pageSize){
$.get("${ctxPath}/score-record/showRecord",
{
pageNo:pageNo,
pageSize:pageSize
},
function (date) {
//加载后台返回的List集合数据
for (var i = 0; i < date.length; i++) {
var td = $("<td></td>").text(date[i].typeName);
var td2 = $("<td></td>").text(date[i].operate);
var td3 = $("<td></td>").text(date[i].score);
var td4 = $("<td></td>").text(date[i].createTime);
var tr = $("<tr></tr>").append(td, td2, td3, td4);
$('tbody').append(tr);
}
},
"json"
);
}
第四步:编写分页逻辑JavaScript代码。
关键注意事项如下:
count参数指定total,表示数据总量,
limit参数指定每页显示行数,
curr参数指定起始页,但jump回调中的obj.curr获取的是当前页码,
jump方法接收的obj参数可获取上述属性及方法,
first布尔值标识是否为首次加载,
//加载总页数
var total = "${scoreRecordUtil.totalRecord}";
//先初始化加载首页,十条数据
showReocrd(1,10);
layui.use(['laypage','jquery'], function() {
var laypage = layui.laypage,$ = layui.$;
$(".page").each(function(i,the){
laypage.render({
elem: the //注意,这里的 test1 是 ID,不用加 # 号
,count: total //数据总数,从服务端得到
, limit: 10 //每页显示条数
, limits: [10, 20, 30]
, curr: 1 //起始页
, groups: 5 //连续页码个数
, prev: '上一页' //上一页文本
, netx: '下一页' //下一页文本
, first: 1 //首页文本
, last: 100 //尾页文本
, layout: ['prev', 'page', 'next','limit','refresh','skip']
//跳转页码时调用
, jump: function (obj, first) { //obj为当前页的属性和方法,第一次加载first为true
//非首次加载 do something
if (!first) {
//清空以前加载的数据
$('tbody').empty();
//调用加载函数加载数据
showReocrd(obj.curr,obj.limit);
}
}
});
})
})
建议:直接采用LayUI table组件内置分页功能(支持异步及条件查询)详见此处
本文内容旨在辅助学习,欢迎支持本站。
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
