关于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一句话全选/取消全选
Mar 01 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
Sep 20 Javascript
一个JQuery操作Table的代码分享
Mar 30 Javascript
canvas实现绘制吃豆鱼效果
Jan 12 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
vuex的使用及持久化state的方式详解
Jan 23 Javascript
webpack 4.0.0-beta.0版本新特性介绍
Feb 10 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
JS跨域请求的问题解析
Dec 03 Javascript
解决layui调用自定义方法提示未定义的问题
Sep 14 Javascript
vue 组件内获取actions的response方式
Nov 08 Javascript
JavaScript原型链详解
Nov 07 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 addslashes和mysql_real_escape_string
2010/01/24 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
python进阶教程之动态类型详解
2014/08/30 Python
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
2018/04/02 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
python得到单词模式的示例
2018/10/15 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
Python continue语句实例用法
2020/02/06 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
python 写一个文件分发小程序
2020/12/05 Python
Python与C/C++的相互调用案例
2021/03/04 Python
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
苏州园林导游词
2015/02/03 职场文书
介绍信怎么写
2015/05/05 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python