layui服务器端分页实例

矫情吗;* 2022-12-29 14:21 313阅读 0赞

layui的分页功能是很不错的,方便快捷。jquery普通页面开发可以考虑。下面以表格为例,举例layui分页功能。其他(利于list等)同理。首先将layui.css、layui.all.js引入在页面中。

官网(下载地址):https://www.layui.com/

1.html页面

  1. <table class="layui-table" lay-even="" lay-skin="row">
  2. <thead>
  3. <tr>
  4. <th>登录名</th>
  5. <th>用户组</th>
  6. <th>姓名/昵称</th>
  7. <th>创建日期</th>
  8. <th>操作</th>
  9. </tr>
  10. </thead>
  11. <tbody>
  12. </tbody>
  13. </table>
  14. <div id="demo1"></div> //调用分页的html代码

2.初始化数据每页显示的条数,当前页数(如果想要搜索等功能,也可以初始化搜索内容的字段 var searchVal=’’)

  1. var totalData=0 //表格数据总数
  2. var currentPage=1 //当前页数
  3. var pageLimit=10 //每页显示数据条数
  4. handleData(currentPage,pageLimit,searchVal) //刚进页面初始化表格
  5. topage() //分页

3.封装页面渲染的ajax请求,注意调用的时候参数的顺序问题。3,4步可以合并,看自己的风格。

  1. function handleData(data1,data2){
  2. $.ajax({
  3. type:"get",
  4. url:window.baseUrl+'/backend/users/',
  5. data:{page:data1, pageSize:data2},
  6. success:function(data){
  7. // console.log(data)
  8. dataList=data.data.users
  9. renderData(dataList)
  10. }
  11. })
  12. }

4.封装渲染表格的方法

  1. function renderData(data){ //渲染表格数据,获取datalist
  2. $("tbody").html('') //以下是根据自己的需求将数据添加到页面中的方法
  3. for(var i=0;i<data.length;i++){ //此处可以用foreach函数代替,更为简洁
  4. $("tbody").append(`<tr>
  5. <td>${data[i].name}</td>
  6. <td>${data[i].group_str}</td>
  7. <td>${data[i].nickname}</td>
  8. <td>${data[i].created}</td>
  9. <td>
  10. <button data-id="${data[i].id}" class="btn layui-btn-normal btn-xs checkout" data-toggle="modal" data-target="#myModal1">查看</button>
  11. <button data-id="${data[i].id}" class="btn layui-btn-normal btn-xs update" data-toggle="modal" data-target="#myModal2">编辑</button>
  12. <button data-id="${data[i].id}" class="btn btn-danger btn-xs delete">删除</button>
  13. </td>
  14. </tr>`) //按钮的data-id是为了获取当前行的id,定位此行,封装方法进行操作
  15. }
  16. }

4.分页功能

  1. function topage(){ //分页操作
  2. $.ajax({ //获取数据总数
  3. type:"get",
  4. url:window.baseUrl+'/backend/users/',
  5. data:{page:currentPage, pageSize:pageLimit},
  6. success:function(data){
  7. totalData=data.data.total
  8. layui.use(['element','laypage', 'layer'], function(){
  9. var $ = layui.jquery;
  10. var element = layui.element;
  11. var laypage = layui.laypage
  12. ,layer = layui.layer;
  13. //总页数大于页码总数
  14. laypage.render({
  15. elem: 'demo1'
  16. ,count: totalData //数据总数
  17. ,limit:pageLimit
  18. ,jump: function(obj,first){
  19. //obj包含了当前分页的所有参数,比如:
  20. var curr=obj.curr
  21. var limit=obj.limit
  22. // console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
  23. // console.log(obj.limit); //得到每页显示的条数
  24. if(!first){
  25. handleData(curr,limit)
  26. }
  27. }
  28. });
  29. })
  30. }
  31. })
  32. }

5.举例操作按钮的实现,其他功能同理

  1. $("table").on("click",'.delete',function(){ //删除按钮
  2. dataId=$(this).attr("data-id")
  3. console.log(dataId)
  4. layer.open({
  5. content: '确定要删除吗'
  6. ,btn: ['取消', '确定']
  7. ,yes: function(index, layero){
  8. layer.close(index)
  9. }
  10. ,btn2: function(index, layero){
  11. $.ajax({
  12. type:"get",
  13. data:{user_id:dataId},
  14. url:window.baseUrl+'/backend/user/deletes/',
  15. success:function(data){
  16. console.log(data)
  17. $("button[data-id='"+dataId+"']").parents('td').parents('tr').remove()
  18. handleData(currentPage,pageLimit)
  19. topage()
  20. }
  21. })
  22. }
  23. });
  24. })

发表评论

表情:
评论列表 (有 0 条评论,313人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Layui + ssm

    做后台就会涉及到表格数据,当数据多的时候,就要使用分页来显示,这样就显得比较美观。分页确实有效,但它一定会加大系统的复杂度,如果数据量少的话可以不用分页,但是对于企业信息系统来

    相关 javaweb--layui表格

    本文最好是有一定javaweb 基础的人查看,你知道,一些最简单的jdbc的实际操作(CRUD) 如何写出以待用.css,.js的外部模板的jsp页面;   使用最基础的