layui实现数据分页功能


Posted in Javascript onJuly 27, 2019

本文实例为大家分享了layui实现数据分页功能,供大家参考,具体内容如下

官网layui table演示页面

示例截图:

layui实现数据分页功能

页面引入layui.css、 layui.js

<div id="pTable" style="width: 1200px;">
  <table class="layui-table" id="layui_table_id" lay-filter="test">
  </table>
<div id="laypage"></div>
 </div>

前台js

var limitcount = 10;
 var curnum = 1;
 //列表查询方法
 function productsearch(productGroupId,start,limitsize) {
  layui.use(['table','laypage','laydate'], function(){
   var table = layui.table,
    laydate=layui.laydate,
    laypage = layui.laypage;
   table.render({
    elem: '#layui_table_id'
    , url: '<%=path%>/xx/pListQuery.html?pId='+productGroupId+'¤tPage='+ start+'¤tNumber=' + limitsize
    /*, where:{pagename:start,pagelimit:limitsize} //传参*/
    , cols: [[
     {field: 'productId', title: 'ID', width: '170', sort: true}
     , {field: 'productName', title: '名称', width: '450'}
     , {field: 'productState', title: '状态', width: '100'}
     , {field: 'effectTime', title: '生效时间', width: '120', sort: true}
     , {field: 'invalidTime', title: '失效时间', width: '120', sort: true}
     , {field: 'productCost', title: '成本', width: '100', sort: true}
     , {field: 'poperation', title: '操作', width: '100',fixed: 'right', toolbar: '#barDemo'}
    ]]
    , page: false
    , height: 430
    ,done: function(res, curr, count){
     //如果是异步请求数据方式,res即为你接口返回的信息。
     //如果是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度
     laypage.render({
      elem:'laypage'
      ,count:count
      ,curr:curnum
      ,limit:limitcount
      ,layout: ['prev', 'page', 'next', 'skip','count','limit']
      ,jump:function (obj,first) {
       if(!first){
        curnum = obj.curr;
        limitcount = obj.limit;
        //console.log("curnum"+curnum);
        //console.log("limitcount"+limitcount);
        //layer.msg(curnum+"-"+limitcount);
        productsearch(productGroupId,curnum,limitcount);
       }
      }
     })
    }
   })
 
   //监听工具条
   table.on('tool(test)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
    var data = obj.data //获得当前行数据
     ,layEvent = obj.event; //获得 lay-event 对应的值
    if(layEvent === 'detail'){
     viewLableInfo(data.attrId);
     layer.msg(data.attrId);
    } else if(layEvent === 'del'){
     layer.msg('删除');
    } else if(layEvent === 'edit'){
     layer.msg('编辑操作');
    }
   });
   //常规用法
   laydate.render({
    elem: '#createDate'
   });
   //常规用法
   laydate.render({
    elem: '#processingTime'
   });
 
  });
 }
  var pId = '${pGBean.pgId }';
productsearch(pId, curnum, limitcount);

业务逻辑层

@Override
  public String queryList (HttpServletRequest request) {
   String total = "";
   String pId = request.getParameter("pId");
   int currentNumber = Integer.parseInt(request.getParameter("currentNumber"));
  String currentPage = request.getParameter("currentPage") == null ? "1" : request.getParameter("currentPage");
  //分页处理,显示第一页的30条数据(默认值)
  PageHelper.startPage(Integer.parseInt(currentPage), currentNumber);
  List<PExl> list = exportDao.queryList (pId);
  if(list.size() > 0){
   total = list.get(0).getTotal();
  }
  
  Page page = PageHelper.localPage.get();
  if(page!=null){
   page.setCurrentPage(Integer.parseInt(currentPage));
  }
  PageHelper.endPage();
 
  JSONObject jsonObject = new JSONObject();
  jsonObject.put("code", 0);
  jsonObject.put("msg", "");
  jsonObject.put("count", total);
  jsonObject.put("data", list);
  //System.out.println("json:----" + jsonObject.toString());
  return jsonObject.toString();
  }

sql

其中sql在计算总数totle时可以这么写

COUNT(*) OVER(PARTITION BY 1) AS TOTAL

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在JavaScript中使用inline函数的问题
Mar 08 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
Feb 23 Javascript
js列举css中所有图标的实现代码
Jul 04 Javascript
javascript 保存文件到本地实现方法
Nov 29 Javascript
jquery鼠标停止移动事件
Dec 21 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
Dec 24 Javascript
js时间控件只显示年月
Jan 08 Javascript
微信小程序 数据交互与渲染实例详解
Jan 21 Javascript
使用vux实现上拉刷新功能遇到的坑
Feb 08 Javascript
webpack优化的深入理解
Dec 10 Javascript
JS中实现浅拷贝和深拷贝的代码详解
Jun 05 Javascript
利用 JavaScript 构建命令行应用
Nov 17 Javascript
layUI实现列表查询功能
Jul 27 #Javascript
Layui实现带查询条件的分页
Jul 27 #Javascript
layui数据表格实现重载数据表格功能(搜索功能)
Jul 27 #Javascript
layui表格数据重载
Jul 27 #Javascript
基于layui实现高级搜索(筛选)功能
Jul 26 #Javascript
微信小程序 如何获取网络状态
Jul 26 #Javascript
layui使用数据表格实现购物车功能
Jul 26 #Javascript
You might like
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
php实现小程序支付完整版
2018/10/09 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
Python下使用Psyco模块优化运行速度
2015/04/05 Python
sklearn+python:线性回归案例
2020/02/24 Python
Python 定义只读属性的实现方式
2020/03/05 Python
python推导式的使用方法实例
2021/02/28 Python
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
会计专业应届生求职信
2013/11/24 职场文书
迟到检讨书800字
2014/01/13 职场文书
倡议书范文
2014/04/16 职场文书
考研复习计划
2015/01/19 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
八月迷情观后感
2015/06/11 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android