关于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 相关文章推荐
JQuery将文本转化成JSON对象需要注意的问题
May 09 Javascript
浅析JavaScript中的delete运算符
Nov 30 Javascript
JavaScript数组去重的五种方法
Nov 05 Javascript
Jquery实现上下移动和排序代码
Oct 17 Javascript
Vue.js学习示例分享
Feb 05 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
VSCode配置react开发环境的步骤
Dec 27 Javascript
利用Decorator如何控制Koa路由详解
Jun 26 Javascript
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
Vue路由对象属性 .meta $route.matched详解
Nov 04 Javascript
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
JavaScript实现打字游戏
Feb 19 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
PHP里的单例类写法实例
2015/06/25 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python使用PyFetion来发送短信的例子
2014/04/22 Python
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
python生成任意频率正弦波方式
2020/02/25 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
先进个人事迹材料
2014/01/25 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
2014年派出所工作总结
2014/11/21 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记
redis protocol通信协议及使用详解
2022/07/15 Redis