Layui给数据表格动态添加一行并跳转到添加行所在页的方法


Posted in Javascript onAugust 20, 2018

Layui是一个前端 UI 框架,该框架风格优雅,但由于发布时间较短,很多功能并没有提供实现。

笔者在使用Layui的数据表格的时候,需求是这样的:当点击添加按钮的时候,就在数据表格最后动态添加一行。上述功能官方并没有给出实现,需要自己手动解决。

解决思路及方案

简单分析:根据需求——动态添加一行,首先想到的是利用JS/jQuery操作DOM对象实现在数据表格table中手动添加一个tr,但由于数据表格的每一行的每一个单元格都有其样式,因此,要想动态添加的一行与Layui数据表格渲染出来的每一行样式及功能一样,就必须给tr设置和渲染出来的每一行一样的样式,利用jQuery去完成这个添加这样一个tr工程量实在太大了,因此需要换一种方案。

数据表格中的原始数据:查看Layui官方文档,采用方法渲染或者自动渲染的方式去生成数据表格时,数据表格中的数据是通过直接赋值的方式或者异步加载的方式获得原始的数据。

直接赋值方式原始的数据其实就是一个对象数组,如[{}, {}, {}, {}, …]。

异步加载方式原始的数据发请求从后端取,然后后端返回给前端的一个json对象,这里要求后端返回给前端的json对象要符合Layui数据表格能渲染的格式,Layui数据表格默认支持的后端返回给前端的json对象格式如下,各个属性具体描叙参照官方文档:

{
  code: 0, 
  msg: "", 
  count: 1000, 
  data: [] 
 }

数据表格的重载:数据表格重载可以将新拿到的原始数据重新渲染到数据表格中,Layui提供的是方法是table.reload(ID, options)

ID:table的id属性值

options:为Layui数据表格的基础参数,具体参照官方文档

下面给出针对原始数据是通过直接赋值的方式、采用方法渲染的数据表格动态添加一行的思路及解决方法

思路:通过上述讲解,动态添加一行其实可以转换为:

拿到数据表格中的所有数据后,也就是拿到一个对象数组,在那个对象数组最后添加一个与拿到的对象数组中对象相同、但其所有属性的属性值为空的一个空对象。(那数据表格中所有数据可参照我的另一篇Layui数据表格之获取表格中所有的数据)

利用table.reload(ID, options)方法将添加了一个“空对象”的数组重新加载渲染到数据表格即可。

跳转到动态添加行所在页,只要设置table.reload(ID, options)中options的page基础参数即可,将page参数的curr属性值设置为动态添加行所在页页码(页码根据数据表格每页显示的记录数以及添加了一行后数据表格中总的记录数自己算)即可。2、3步代码如下():

//获取每页显示的记录数、当前记录总数,计算新添加的记录在第几页
var totalRecord = tableContent.length;
var pageSize = $(".layui-laypage-limits").find("select").val();
if($.type(pageSize) == "string"){
 pageSize = parseInt(pageSize);
}

var currPageNo = Math.ceil(totalRecord / pageSize);
console.log("每页显示的记录数:"+pageSize+" 类型:"+$.type(pageSize)+" 总的记录数:"+totalRecord+" 类型:"+$.type(totalRecord)
  +" 新增行所在页码:"+currPageNo+" 类型:"+$.type(currPageNo));

// 重载表格并跳转到最后修改或者添加数据的那一页
table.reload('viewTable', {
  page : {
   curr : currPageNo
  },
  data : tableContent
});

最终效果图:

动态添加一行前(请将图片保存到本地查看大图)

Layui给数据表格动态添加一行并跳转到添加行所在页的方法

动态添加一行后(请将图片保存到本地查看大图)

Layui给数据表格动态添加一行并跳转到添加行所在页的方法

以上这篇Layui给数据表格动态添加一行并跳转到添加行所在页的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE中JS跳转丢失referrer问题的2个解决方法
Jul 18 Javascript
浅谈类似于(function(){}).call()的js语句
Mar 30 Javascript
javascript实现密码验证
Nov 10 Javascript
javascript insertAfter()定义与用法示例
Jul 25 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
Jun 11 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
Dec 16 Javascript
Vue侧滑菜单组件——DrawerLayout
Dec 18 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
Sep 02 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
Sep 27 Javascript
小程序封装路由文件和路由方法(5种全解析)
May 26 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
Oct 12 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
Aug 20 #Javascript
获取layer.open弹出层的返回值方法
Aug 20 #Javascript
react.js组件实现拖拽复制和可排序的示例代码
Aug 20 #Javascript
layui弹出层按钮提交iframe表单的方法
Aug 20 #Javascript
详解如何在Vue里建立长按指令
Aug 20 #Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
Aug 20 #Javascript
Angular6 写一个简单的Select组件示例
Aug 20 #Javascript
You might like
MySQL连接数超过限制的解决方法
2011/07/17 PHP
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
详解js类型判断
2018/05/22 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
JavaScript进制转换实现方法解析
2020/01/18 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
pygame实现打字游戏
2021/02/19 Python
opencv3/C++ 平面对象识别&透视变换方式
2019/12/11 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
写给女生的道歉信
2014/01/14 职场文书
函授毕业自我鉴定
2014/02/04 职场文书
文体活动总结范文
2014/05/05 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
学生保证书格式
2015/02/27 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
Python 数据可视化之Matplotlib详解
2021/11/02 Python
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技