关于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 相关文章推荐
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
jQuery动画与特效详解
Feb 01 Javascript
异步安全加载javascript文件的方法
Jul 21 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
Jul 21 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
jQuery事件绑定用法详解
Sep 08 Javascript
node+experss实现爬取电影天堂爬虫
Nov 20 Javascript
js实现简单的计算器功能
Jan 16 Javascript
JavaScript简介_动力节点Java学院整理
Jun 26 Javascript
在vue项目中优雅的使用SVG的方法实例详解
Dec 03 Javascript
JavaScript适配器模式原理与用法实例详解
Mar 09 Javascript
Vue Element校验validate的实例
Sep 21 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
加强版phplib的DB类
2008/03/31 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
完美解决js传递参数中加号和&amp;号自动改变的方法
2016/10/11 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
Python中常用信号signal类型实例
2018/01/25 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
python pycharm的安装及其使用
2019/10/11 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
什么是URL
2015/12/13 面试题
毕业生求职推荐信
2013/11/04 职场文书
护理不良事件检讨书
2014/02/06 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
实习指导老师评语
2014/04/26 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
2015年环卫工作总结
2015/04/28 职场文书
投诉信范文
2015/07/02 职场文书
话题作文之学会尊重
2019/12/16 职场文书
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python