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 相关文章推荐
基于jquery的tab切换 js原理
Apr 01 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
Aug 08 Javascript
jquery 操作iframe的几种方法总结
Dec 13 Javascript
Jquery实现由下向上展开效果的例子
Dec 08 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 Javascript
JQuery中DOM事件绑定用法详解
Jun 13 Javascript
浅谈Jquery核心函数
Jun 18 Javascript
使用JavaScript实现链表的数据结构的代码
Aug 02 Javascript
vue todo-list组件发布到npm上的方法
Apr 04 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
Apr 10 Javascript
详解webpack-dev-server使用方法
Sep 14 Javascript
javascript-hashchange事件和历史状态管理实例分析
Apr 18 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
JAVA/JSP学习系列之六
2006/10/09 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
Vue filters过滤器的使用方法
2017/07/14 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python进阶篇之字典操作总结
2016/11/16 Python
python中的tcp示例详解
2018/12/09 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
软件配置管理有什么好处
2015/04/15 面试题
《小池塘》教学反思
2014/02/28 职场文书
亮化工程实施方案
2014/03/17 职场文书
2014年话务员工作总结
2014/11/19 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
员工福利申请报告
2015/05/15 职场文书