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实现自定义标签
May 08 Javascript
javascript 获取表单file全路径
Dec 31 Javascript
javascript简单事件处理和with用法介绍
Sep 16 Javascript
使用控制台破解百小度一个月只准改一次名字
Aug 13 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
教你如何在Node.js中使用jQuery
Aug 28 Javascript
layui文件上传实现代码
May 20 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
Aug 20 Javascript
js根据json数据中的某一个属性来给数据分组的方法
Oct 08 Javascript
js 实现在2d平面上画8的方法
Oct 10 Javascript
vue-router启用history模式下的开发及非根目录部署方法
Dec 23 Javascript
Vue引入Stylus知识点总结
Jan 16 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
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
JS实现多功能计算器
2020/10/28 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
详解python中的文件与目录操作
2017/07/11 Python
python决策树之C4.5算法详解
2017/12/20 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
NumPy 数组使用大全
2019/04/25 Python
python数组循环处理方法
2019/08/26 Python
通过实例了解python property属性
2019/11/01 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
巴西手表购物网站:eclock
2019/03/19 全球购物
SQL注入攻击的种类有哪些
2013/12/30 面试题
土木工程实习生自我鉴定
2013/09/19 职场文书
高级工程师岗位职责
2013/12/15 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
HR求职自荐信范文
2014/06/21 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
技术转让协议书
2016/03/19 职场文书
入党申请书怎么写?
2019/06/11 职场文书
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL