zoukankan      html  css  js  c++  java
  • 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异步)/

    逆天改命!我命由我不由天!
  • 相关阅读:
    STL 全排列
    Happy Programming Contest
    输入外挂
    Crazy Professor
    订票助手 12306
    我的e证空间 出入境证照可在家自拍啦!
    雨生红球藻 虾青素 寻找正规产品!
    CAR 汽车团购网站—广州
    3G路由器、无线接入点(无线AP)、无线路由器!
    微软 Lightswitch 发布 V2 Beta,引入新的逻辑层基础技术!
  • 原文地址:https://www.cnblogs.com/huhewei/p/13953595.html
Copyright © 2011-2022 走看看