Maison > interface Web > Tutoriel Layui > le corps du texte

Comment layui implémente la fonction de pagination des données

王林
Libérer: 2021-02-07 11:03:13
avant
4768 Les gens l'ont consulté

Comment layui implémente la fonction de pagination des données

Jetons d'abord un coup d'œil à l'écran de démonstration du site officiel.

Code spécifique :

La page présente 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>
Copier après la connexion

Front-end js

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

Couche de logique métier

@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();
  }
Copier après la connexion

sql

Le sql peut être écrit comme ceci lors du calcul du total total

COUNT(*) OVER(PARTITION BY 1) AS TOTAL
Copier après la connexion

Recommandations associées : tutoriel layui

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:码农教程
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!