layui实现数据分页功能

官网layui table演示页面: http://www.layui.com/demo/table.html 示例截图: 页面引入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内容

官网layui table演示页面:http://www.layui.com/demo/table.html

示例截图:



页面引入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 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

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

遇到网页上有精美图片或者精彩文字想保存时,通常大家都是选中目标后按鼠标右键,在弹出菜单中选择图片另存为或复制来达到我们的目的。但是,目前有许多网页都屏蔽了鼠标右键,那么用js如何实现禁止鼠标右键的功能呢? 1、与禁止鼠标右键相关的JS说明 script
最近遇到一个需求,需要点击按钮,复制 p 标签中的文本到剪切板 之前做过复制输入框的内容,原以为差不多,结果发现根本行不通 尝试了各种办法,最后使了个障眼法,实现了下面的效果 一、原理分析 浏览器提供了 copy 命令 ,可以复制选中的内容 document.exe
本文实例为大家分享了js弹出窗口展示的具体代码,供大家参考,具体内容如下 !DOCTYPE htmlhtmlhead lang=en meta charset=UTF-8 title/title style body{ /*margin: 0;*/ } #div1{ width: 100px; height: 100px; border: 1px solid red; } /style/headbodydi
每次想快速测试页面效果的时候,特别是在学习前端代码的时候,就想到W3school的那个试一试功能,一直都是用他们那个在线的版本测试, 今天发现网上有类似的代码,以后就不需要联网了,想测就可以直接用了。 下面把代码贴上 首先先建立一个样式文件tc.css Css
通过使用form的onsibmit来控制是否提交数据 返回值为真是提交,其他不变,示例如下: JS部分 function check() { var newPwd = document.getElementById(newPwd); var confirmNewPwd = document.getElementById(confirmNewPwd); if (newPwd.value == confirm
很多时候,项目里都是需要上传功能的,现在就来研究研究, 首先,在html页面引入layui的包,如: link rel=stylesheet href=map/plug-in/scripts/layui/css/layui.css /script type=text/javascript src=map/plug-in/scripts/layui/lay/dest/layui.all.js /s