jqGrid的rowNum属性默认值、-1状况的引见

近来做了一个用到了jqGrid的项目,在设置rowNum属性的时刻遇到了曲折…

rowNum属性的默认值为20,当你不设置时,每页最多只给你显现20条数据。

然则,当我们不想设置最大的数据条数时,我们还想显现悉数数据怎么办,网上说设置为 -1 ,这时候题目就涌现了,这么设置在画面上会发明数据少了一条…坑啊…

为了处理这个题目,无法只能最先调试…

末了发明题目发生点(jquery.jqGrid.src

      var queryResults = query.select(),
      recordsperpage = parseInt(ts.p.rowNum,10),
      total = queryResults.length,
      page = parseInt(ts.p.page,10),
      totalpages = Math.ceil(total / recordsperpage),
      retresult = {};
      queryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );
      query = null;
      cmtypes = null;
      retresult[ts.p.localReader.total] = totalpages;
      retresult[ts.p.localReader.page] = page;
      retresult[ts.p.localReader.records] = total;
      retresult[ts.p.localReader.root] = queryResults;
      retresult[ts.p.localReader.userdata] = ts.p.userData;
      queryResults = null;
      return  retresult;

请重点看这段代码

queryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );

当rowNum属性值为-1时,recordsperpage 会为 -1

此时实行.slice函数就有题目了,此时函数相当于queryResults.slice(0,-1),小伙伴们能够去查查.slice函数的API,大致意义就是

.slice(start,end) 返回区间为start 到 end位置的元素,请注意,如果是负数,则代表的意义是从数组尾部最先算起的元素

这回邃晓为何数据会少了一条吧…

供应一种修正体式格局,增加一个前提推断吧

 var queryResults = query.select(),
      ...
      if (recordsperpage != -1){
      queryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );
      }
      ...
    原文作者:Start_liyi
    原文地址: https://segmentfault.com/a/1190000018318671
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞