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 相关文章推荐
Firefox和IE浏览器兼容JS脚本写法小结
Jul 07 Javascript
jquery控制display属性为none或block
Mar 31 Javascript
js中函数调用的两种常用方法使用介绍
Jul 17 Javascript
JS实现下拉菜单赋值到文本框的方法
Aug 18 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
Jun 04 Javascript
vue.js移动端app实战1:初始配置详解
Jul 24 Javascript
vue生成token保存在客户端localStorage中的方法
Oct 25 Javascript
在angular 6中使用 less 的实例代码
May 13 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
Feb 01 jQuery
Node.js API详解之 Error模块用法实例分析
May 14 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
Oct 21 Javascript
JavaScript实现筛选数组
Mar 02 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
新闻分类录入、显示系统
2006/10/09 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
使用angular写一个hello world
2015/01/23 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
关于不同页面之间实现参数传递的几种方式讨论
2017/02/13 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
Python求导数的方法
2015/05/09 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
Python列表切片用法示例
2017/04/19 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
通用C#笔试题附答案
2016/11/26 面试题
全神贯注教学反思
2014/02/03 职场文书
公证书样本
2014/04/10 职场文书
联谊活动总结
2014/08/28 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
司机岗位职责范本
2015/04/10 职场文书
分享python函数常见关键字
2022/04/26 Python