浅谈layui框架自带分页和表格重载的接口解析问题


Posted in Javascript onSeptember 11, 2019

首先要了解框架分页自带的参数有哪些,特别是注意参数名称要和后台一致!

浅谈layui框架自带分页和表格重载的接口解析问题

**需要注意的是layui框架的数据解析格式问题,data必须是个数组对象的形式才能正常解析否则会很麻烦(亲测过非正常解析,手写js手动动态添加表格)

data 格式例如:

{
 "count": 11,
 "code": 0,
 "msg": "",
 "data": [
 {
  "id": "1",
  "money": 20,
  "toptype": "在线",
  "operationtype": "充值",
  "remittanceid": 1,
  "img": "",
  "datetime": "2018-08-01 16:01:09",
  "accountid": "wyp666",
  "statusid": "P05",
  "orderid": "2",
  "userid": "wdm123456",
  "audittime": "2018-07-25 16:02:53",
  "tradingid": "",
  "message": "已审核",
  "ip": ""
 }]
 }

这时候注意分页后台json的参数名称要与框架保持一致,特别是page(当前第几页)和 limit(每页显示条数),这时可以通过框架分页属性来直接设置当前为第几页和每页显示条数不用通过data传递这两个参数到后台了;如果page不传的话会默认为第一页;

例如:

table.render({
   elem: '#detail',
   url : '后台接口',
   method:'请求方式',
   cellMinWidth : 95,
   page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
   layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
    //,curr: 5 //设定初始在第 5 页
    ,groups: 1 //只显示 1 个连续页码
    ,first: false //不显示首页
    ,last: false //不显示尾页
   },
   unresize:false, //禁止拖拽td框,默认为false可拖拽
   limits : [10,15,20,25], //这里设置可选择每页显示条数
   limit : 10, //这里设置的是每页显示多少条
   id : "表格ID",
   cols : [[..........]]

效果图如下:

浅谈layui框架自带分页和表格重载的接口解析问题

**表格重载(头部搜索功能):通过传入的日期来搜索请求后台查询出数据

//搜索查询
  var active = {
   reload: function(){
    var date_s = $('#date_s').val(); //传入搜索的日期值 
    //执行重载
    table.reload('重载表格id', {
     url : '搜索请求接口',
     method:'请求类型',
     page: {
      curr: 1 //重新从第 1 页开始
     }
     ,where: { //类似于 data
      beginDate:date_s //传入日期参数
     }
    });
   }
  };
  $('#rechar_btn').on('click', function(){
   var type = $(this).data('type');
   //不能为空验证
   if( $('#date_s').val()==""){
    layer.msg('查询起始日期不能为空');
    return false;
   }
   active[type] ? active[type].call(this) : '';
  });

特别要注意的是执行表格重载时,点击的按钮btn最好不要用button或者input(容易入坑)否则点击搜索时页面会刷新,接口会提交两次,把 button 换成 div 就会避免这个问题。

类似于:

<button class="layui-btn" data-type="reload" lay-filter="rechar_btn" id="rechar_btn" >搜索</button>

换成 div

<div class="layui-btn" data-type="reload" lay-filter="rechar_btn" id="rechar_btn" >搜索</div>

最后说一下:分页也支持回调----看文档里的-切换分页的回调

laypage.render({
 elem: 'test1'
 ,count: 70 //数据总数,从服务端得到
 ,jump: function(obj, first){
 //obj包含了当前分页的所有参数,比如:
 console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
 console.log(obj.limit); //得到每页显示的条数
 
 //首次不执行
 if(!first){
  //do something
 }
 }
});

都是项目里遇到的一些小问题,顺手写一笔,如果各位大神不巧看到这里还请大家多多提点意见和建议,大家多多沟通和分享~

以上这篇浅谈layui框架自带分页和表格重载的接口解析问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript组合拼接字符串的效率对比测试
Nov 06 Javascript
javascript设计模式--策略模式之输入验证
Nov 27 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
May 19 Javascript
jQuery 3.0十大新特性最终版发布
Jul 14 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
微信小程序 wxapp内容组件 icon详细介绍
Oct 31 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
Apr 22 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
Mar 15 Javascript
使用webpack打包后的vue项目如何正确运行(express)
Oct 26 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
Oct 29 Javascript
countUp.js实现数字动态变化效果
Oct 17 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
Sep 11 #Javascript
js中offset,client , scroll 三大元素知识点总结
Sep 11 #Javascript
js实现点击图片在屏幕中间弹出放大效果
Sep 11 #Javascript
node-red File读取好保存实例讲解
Sep 11 #Javascript
vue中nextTick用法实例
Sep 11 #Javascript
js计算最大公约数和最小公倍数代码实例
Sep 11 #Javascript
如何换个角度使用VUE过滤器详解
Sep 11 #Javascript
You might like
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
php的ddos攻击解决方法
2015/01/08 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
php实现的日历程序
2015/06/18 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
jquery tools之tooltip
2009/07/25 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
Python 通配符删除文件的实例
2018/04/24 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
python读取ini配置文件过程示范
2019/12/23 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
法院信息化建设方案
2014/05/21 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
详解flex:1什么意思
2022/07/23 HTML / CSS