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异步)/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM