layui实现数据分页功能(ajax异步)
layui实现数据分页功能(ajax异步)
最近项目要使用layUI的分页,看了官方demo感觉还是不太清晰,摸索了一下,现在记录一下。
一:引入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">
<table class="layui-table">
<thead>
<tr>
<th>积分类型</th>
<th>积分原因</th>
<th>积分值</th>
<th>创建时间</th>
</tr>
</thead>
<tbody>
//存放分页加载数据
</tbody>
</table>
<div id="page"></div>
</div>
</div>
</div>
三:定义showRecord()函数异步加载数据
function showRecord(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"
);
}
四:分页js
主要注意下:
count: total 代表总的数据量,
limit 代表每页行数,
curr 代表起始页,但jump函数中的obj.curr取的是当前页数
jump 方法中obj参数可以取到上面的属性和方法
first 为是否首次加载
//加载总页数
var total = "${scoreRecordUtil.totalRecord}";
//先初始化加载首页,十条数据
showRecord(1,10);
layui.use(['laypage','jquery'], function() {
var laypage = layui.laypage,$ = layui.$;
laypage.render({
elem: $("#page")
//注意,这里的 elem 指向存放分页的容器,值可以是容器ID、DOM对象。
//例1. elem: 'idName' 注意:如果这么写,这里不能加 # 号
//例2. elem: document.getElementById('idName')
//例3. elem: $("#idName")
,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();
//调用加载函数加载数据
showRecord(obj.curr,obj.limit);
}
}
});
})
这篇文章分页使用了Jquery拼接元素进行渲染,感觉比较麻烦而且不够优雅,可以用layui的模板引擎laytpl对分页数据进行渲染,可参考我另一篇博客:layui实现数据分页功能(laytpl模板引擎分页加载)
如果只是table分页查询的话,更推荐使用layui自带的table分页组件,可参考博客:使用layui的table组件自带分页功能(异步,含条件查询)
欢迎访问本文的个人博客链接: https://br-bai.github.io/2019/01/06/LayUI实现数据分页功能(Ajax异步)/
逆天改命!我命由我不由天!