最近项目要使用layUI的分页,看了官方demo感觉还是不太清晰,摸索了一下,现在记录一下。

一:引入layUI的相关资源

1
2
3
<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页面代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<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>

三:定义showRecord()函数异步加载数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 为是否首次加载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//加载总页数
var total = "${scoreRecordUtil.totalRecord}";
//先初始化加载首页,十条数据
showRecord(1,10);

layui.use(['laypage','jquery'], function() {

var laypage = layui.laypage,$ = layui.$;

laypage.render({
elem: $('.page')[0]
//注意,这里的 elem 指向存放分页的容器,值可以是容器ID、DOM对象。
//例1. elem: 'idName' 注意:这里不能加 # 号
//例2. elem: document.getElementById('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);
}
}
});
})

推荐:使用layui的table组件自带分页功能(异步,含条件查询)点这里