浅谈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的COOkie的操作实现只能点一次
Dec 26 Javascript
原生javascript实现简单的datagrid数据表格
Jan 02 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
May 29 Javascript
深入浅析AngularJS和DataModel
Feb 16 Javascript
Angularjs 制作购物车功能实例代码
Sep 14 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
Sep 20 Javascript
详解jQuery选择器
Dec 21 Javascript
JS设计模式之单例模式(一)
Sep 29 Javascript
vue init失败简单解决方法(终极版)
Dec 22 Javascript
vue绑定的点击事件阻止冒泡的实例
Feb 08 Javascript
vue移动端微信授权登录插件封装的实例
Aug 28 Javascript
vue中npm包全局安装和局部安装过程
Sep 03 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设计模式 Factory(工厂模式)
2011/06/26 PHP
PHP 异步执行方法,模拟多线程的应用分析
2013/06/03 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
python matplotlib坐标轴设置的方法
2017/12/05 Python
python实现简单神经网络算法
2018/03/10 Python
pandas数据预处理之dataframe的groupby操作方法
2018/04/13 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
django 模版关闭转义方式
2020/05/14 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
Java里面有没有全局变量?为什么?
2015/02/06 面试题
初中教师业务学习材料
2014/05/12 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
学生检讨书怎么写
2014/10/09 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript