关于layui 实现点击按钮添加一行(方法渲染创建的table)


Posted in Javascript onSeptember 29, 2019

目标:layui 实现点击按钮添加一行

解决方案:

方案1、table 是用转换静态表格的方式创建的,写一个button,每次点击按钮,就添加一个<tr> 标签;

方案2、table 是用方法渲染的方式创建的,写一个button,每次点击按钮,加载数据时添加一个Object;

之前我试过用方案1 来实现该功能,发现这个方案,代码量极大,最困难的地方就是在<tr>中加样式,特别是table中有很多种控件时,样式的添加非常麻烦 ,可参见点击打开链接

后选择使用方案2 ,但是遇到了,添加的对象无法通过加载url来渲染t

原来的数据表格使用方法渲染的方法传的值,其数据是从url中取出,

发现layui的url传值方式,数据格式必须为:

{"code":0,"msg":"","count":4,"data":[{"colName":"ID","colNo":0,"collator":"","comments":"","dbId":1,"defVal":"","deleted":"","dispersion":0,"domainId":0,"histogram":"","isHide":"","isSerial":"F","isVirtual":"","maxVal":"","minVal":"","notNull":"T","repetRate":0,"scale":-1,"serialId":0,"tableId":1048586,"timestampT":" ","typeName":"INTEGER","varying":"F","vcolNo":0,"vertNo":0}]}

而我在reload方法中存放的data数据格式为

[{"colName":"ID1","colNo":0,"collator":"","comments":"","dbId":1,"defVal":"","deleted":"","dispersion":0,"domainId":0,"histogram":"","isHide":"","isSerial":"F","isVirtual":"","maxVal":"","minVal":"","notNull":"T","repetRate":0,"scale":-1,"serialId":0,"tableId":1048586,"timestampT":" ","typeName":"INTEGER","varying":"F","vcolNo":0,"vertNo":0}]

因此,解决方案:

1、将新增的data格式修改为url返回的格式,失败;

2、将url的返回值,以data的array格式返回,并作为变量传给data;成功。

全部方法如下:

首先:用ajax请求将数据取出存于变量,将变量赋值给table的data

var tableData=new Array(); // 用于存放表格数据
$.ajax({
   url: "${ctp}/TableOperate/GetColsInfo?tabId=1048586&dbId=1"
   ,type:"get"
   ,async:false
   ,dataType:"json"
   , success: function(result){
    tableData=result;
   console.log(result);
   }
  });
table.render({
   elem: '#baseInfo'
   ,data:tableData
   ,cols: [[
   {title : '序号',type:'numbers',Width: 20}
   /* ,{field:'tableId' , title:'tableId' }
    ,{field:'dbId'  , title:'dbId' } */
    ,{field:'colNo' , title:'colNo' , sort: true}
    ,{field:'domainId' , title:'domainId', minWidth: 120, templet: '#switchTpl', unresize: true }
    ,{field:'colName' , title:'colName' , minWidth: 120, sort: true   , edit: 'text'}
    ,{field:'typeName' , title:'typeName', minWidth: 120, sort: true ,templet: '#selectTpl'}
    ,{field:'scale' , title:'scale' , minWidth: 80, edit: 'text'}
    ,{field:'notNull' , title:'notNull' , minWidth: 100, templet: '#switchNullTpl', unresize: true}
    ]]
   ,page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
   layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
   ,curr: 1 //设定初始在第 1 页
   ,groups: 1 //只显示 1 个连续页码
   ,first: false //不显示首页
   ,last: false //不显示尾页
   }
   , done: function(res, curr, count){
    }
 
  });

最后,调用按钮的点击方法

//点击加号按钮时,新添一行
  $("#addTable").click(function(){
   var oldData = table.cache["baseInfo"];
   var data1={"colName":"ID2","colNo":0,"collator":"","comments":"","dbId":1,"defVal":"","deleted":"","dispersion":0,"domainId":0,"histogram":"","isHide":"","isSerial":"F","isVirtual":"","maxVal":"","minVal":"","notNull":"T","repetRate":0,"scale":-1,"serialId":0,"tableId":1048586,"timestampT":" ","typeName":"INTEGER","varying":"F","vcolNo":0,"vertNo":0};
   oldData.push(data1);
   table.reload('baseInfo',{
    data : oldData
   });
  });

效果如图所示:

关于layui 实现点击按钮添加一行(方法渲染创建的table)

以上这篇关于layui 实现点击按钮添加一行(方法渲染创建的table)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJs 表单提交登陆实现代码
Aug 19 Javascript
js change,propertychange,input事件小议
Dec 20 Javascript
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
Apr 15 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
Oct 06 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
Dec 06 Javascript
微信小程序  checkbox组件详解及简单实例
Jan 10 Javascript
深入理解Vue.js源码之事件机制
Sep 27 Javascript
送你43道JS面试题(收藏)
Jun 17 Javascript
ZK中使用JS读取客户端txt文件内容问题
Nov 07 Javascript
使用refresh_token实现无感刷新页面
Apr 26 Javascript
在Layui中实现开关按钮的效果实例
Sep 29 #Javascript
layui之数据表格--与后台交互获取数据的方法
Sep 29 #Javascript
20多个小事例带你重温ES10新特性(小结)
Sep 29 #Javascript
解决layui页面按钮点击无反应,也不报错的问题
Sep 29 #Javascript
react用Redux中央仓库实现一个todolist
Sep 29 #Javascript
layui数据表格 table.render 报错的解决方法
Sep 29 #Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 #Javascript
You might like
php网站被挂木马后的修复方法总结
2014/11/06 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
javascript中的一些注意事项 更新中
2010/12/06 Javascript
子页向父页传值示例
2013/11/27 Javascript
jquery密码强度校验
2015/12/02 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
什么是JavaScript注入攻击?
2016/09/14 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
vue中appear的用法
2017/08/17 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
Python 没有main函数的原因
2020/07/10 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
护理专业毕业生推荐信
2013/10/31 职场文书
社区七一党员活动方案
2014/01/25 职场文书
员工工作自我评价
2014/09/26 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
2015年平安创建工作总结
2015/04/29 职场文书