关于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 表单验证扩展代码(一)
Oct 11 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
Nov 21 Javascript
jquery制作select列表双向选择示例代码
Sep 02 Javascript
AngularJS ng-blur 指令详解及简单实例
Jul 30 Javascript
详解jQuery uploadify文件上传插件的使用方法
Dec 16 Javascript
JQuery validate 验证一个单独的表单元素实例
Feb 17 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
May 20 Javascript
JavaScript截屏功能的实现代码
Jul 28 Javascript
使用elementUI实现将图片上传到本地的示例
Sep 04 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 Javascript
详解vue页面首次加载缓慢原因及解决方案
Nov 06 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
Feb 15 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
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
jquery禁用右键示例
2014/04/28 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
浅析JS运动
2015/12/28 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
python实现多线程抓取知乎用户
2016/12/12 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
使用python实现ANN
2017/12/20 Python
Python面向对象之继承代码详解
2018/01/29 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
演讲稿怎么写才完美
2014/01/02 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
竞聘演讲稿
2014/04/24 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
Docker官方工具docker-registry案例演示
2022/04/13 Servers
python中filter,map,reduce的作用
2022/06/10 Python