关于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 相关文章推荐
新鲜出炉的js tips提示效果
Apr 03 Javascript
js中数组Array的一些常用方法总结
Aug 12 Javascript
图标线性回归斜着移动到指定的位置
Aug 16 Javascript
js 采用delete实现继承示例代码
May 20 Javascript
js跨域请求的5中解决方式
Jul 02 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
js实现异步循环实现代码
Feb 16 Javascript
使用javascript插入样式
Mar 14 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
May 12 Javascript
用原生js统计文本行数的简单示例
Aug 19 Javascript
原生JS实现贪吃蛇小游戏
Mar 09 Javascript
详解Howler.js Web音频播放终极解决方案
Aug 23 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生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
2017/03/10 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
社区维稳工作方案
2014/06/06 职场文书
五一劳动节慰问信
2015/02/14 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android
python APScheduler执行定时任务介绍
2022/04/19 Python