关于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 相关文章推荐
JavaScript 页面编码与浏览器类型判断代码
Jun 03 Javascript
jquery 学习之一 对象访问
Nov 23 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
Jun 18 Javascript
如何使用Javascript正则表达式来格式化XML内容
Jul 04 Javascript
javascript实现炫酷的拖动分页
May 11 Javascript
JQuery选择器、过滤器大整理
May 26 Javascript
JavaScript中日期的相关操作方法总结
Oct 24 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
一系列Bootstrap导航条使用方法分享
Apr 29 Javascript
基于JavaScript实现报警器提示音效果
Oct 27 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
JS面向对象编程实现的Tab选项卡案例详解
Mar 03 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 防注入函数(格式化数据)
2011/08/08 PHP
php木马webshell扫描器代码
2012/01/25 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
js实现左右轮播图
2020/01/09 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
详解Python中break语句的用法
2015/05/14 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
Python 读写文件的操作代码
2018/09/20 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
python drf各类组件的用法和作用
2021/01/12 Python
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
店长岗位的工作内容
2013/11/12 职场文书
考研导师推荐信范文
2015/03/27 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
《藏戏》教学反思
2016/02/23 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
浅谈克隆 JavaScript
2021/11/02 Javascript