layui加载表格,绑定新增,编辑删除,查看按钮事件的例子


Posted in Javascript onSeptember 06, 2019

使用layui框架的时候,总会重复的写相关代码,感觉很是苦恼,所以进行分装,只需要关注业务方面即可

如下图,提供新增,编辑,查看等功能

layui加载表格,绑定新增,编辑删除,查看按钮事件的例子

layui加载表格,绑定新增,编辑删除,查看按钮事件的例子

js方法

/**
 * 页面内弹出编辑窗口 //需要引入 layui.js layui.css文件
 * @param {} title 标题 不显示为false
 * @param {} area 大小 ["400px","500px"] 或者 "400px"--->只设置宽度
 * @param {} path 弹出页面路径
 * @param {} sucFunName 执行保存操作后再弹出页面中的保存方法名称
 * @param {} callBack 执行保存操作之后的其他操作
 * @returns {} 
 */
function openDetial(title, area, path, sucFunName, callBack) {
 layer.open({
  type: 2,
  title: title, //不显示标题栏
  closeBtn: 2,
  area: area,
  shade: 0.8,
  id: (new Date()).valueOf(), //设定一个id,防止重复弹出 时间戳1280977330748
  btn: ['保存', '取消'],
  btnAlign: 'r',
  moveType: 1, //拖拽模式,0或者1
  content: path,
  yes: function (index, layero) {
   var btn = layero.find('.layui-layer-btn').find('.layui-layer-btn0');
   alert("-----");
   try {
    var _ifr = btn[0].parentNode.parentNode.getElementsByClassName("layui-layer-content")[0].children[0].contentWindow ||
      btn[0].parentNode.parentNode.getElementsByClassName("layui-layer-content")[0].children[0].children[0].contentWindow;
    var func = new Function('_ifr', "return _ifr." + sucFunName + "();");
    var flg = func(_ifr);
    if (flg == false) {
     return false;
    } else {
     if (callBack != null) callBack();
     window.location.reload();
    }
   } catch (ex) {
 
   }
  },
  btn2: function (index, layero) {
  }
 });
}
//
 
 
/**
 * 初始化表格及表格相关的简单操作 //需要引入 layui.js layui.css文件
 * @param {} t table参数形如 {id:'test',indexName:'ID',heigt:'full-30',url:'Account?GetTableJson|&',page:true,cols:[ { field: 'ID', title: 'ID', width: 80 },]}
 * @param {} editor 编辑方法
 * @param {} deltes 删除方法
 * @param {} read 查看方法
 * @returns {} 
 */
function createTable(t, editor, deltes, read) {
 var bodys = document.getElementsByTagName("body")[0];
 bodys.innerHTML += '<table class="layui-hide" id="test" lay-filter="demo"></' + 'table>' +
  '<script type="text/html" id="barDemo">' +
  ' <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</' + 'a>' +
  ' <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</' + 'a>' +
  ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</' + 'a>' +
  '</' + 'script>';
 
 layui.use(['laypage', 'table'], function () {
  var laypage = layui.laypage, //分页
   table = layui.table; //表格
  //执行一个 table 实例
  table.render({
   elem: '#' + (t.id || 'test'),
   id: t.indexName || ID,
   height: t.heigt || 'full-30',
   url: t.url, //数据接口
   page: t.page, //开启分页
   cols: [
    t.cols
   ]
  });
 
  table.on('tool(demo)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
   var data = obj.data, //获得当前行数据
 layEvent = obj.event; //获得 lay-event 对应的值
   if (layEvent === 'detail') {
    if (read != null) read(obj);
   } else if (layEvent === 'del') {
    layer.confirm('真的删除行么', function (index) {
     obj.del(obj); //删除对应行(tr)的DOM结构
     layer.close(index);
     //向服务端发送删除指令
     if (deltes != null) deltes(obj);
    });
   } else if (layEvent === 'edit') {
    editor(obj);
   }
  });
 });
}

调用页面

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 <title></title>
 <link rel="stylesheet" href="../../../Publics/others/layui/css/layui.css" rel="external nofollow" media="all">
 <script type="text/javascript" src="../../../FunctionJs.js"></script>
 <style>
  body {
   margin: 10px;
  }
 
  .demo-carousel {
   height: 200px;
   line-height: 200px;
   text-align: center;
  }
 </style>
</head>
<body>
 <script src="../../../Publics/others/layui/layui.js"></script>
 <script src="../../../LayuiFunction.js"></script>
<script>
 var addButton = '<button class=\"layui-btn layui-btn-xs\" οnclick=\'openDetial(\"新增编辑\", [\"600px\", \"550px\"], \"./editor.html\", \"ApplicationSave\", null)\'>新增</button>';
 var tableObj = { id: 'test', indexName: 'ID', heigt: 'full-30', url: 'Account?action=GetTableJson', page: false, 
  cols: [ { field: 'ID', title: 'ID' },
   { field: 'Names', title: '名称', width: 180 },
   { field: 'TypeName', title: '消费类型' },
   { field: 'PRICE', title: '价格' },
   { field: 'ISOUT', title: '账目类型' },
   { field: 'Dates', title: '日期' },
   { field: 'Remark', title: '备注', width: 180 },
   { fixed: 'right', title: addButton, width: 180, align: 'center', toolbar: '#barDemo' }
  ] };
 createTable(tableObj, function (obj) {
   layer.alert('编辑行:<br>' + JSON.stringify(obj.data));
    openDetial("账单编辑", ['600px', '550px'], "./editor.html", "ApplicationSave", null);
  },
  function (obj) {
   layer.alert('删除行:<br>' + JSON.stringify(obj.data));
  },
  function(obj) {
   layer.alert('查看行:<br>' + JSON.stringify(obj.data));
  }
 );
</script>
</body>
</html>

以上这篇layui加载表格,绑定新增,编辑删除,查看按钮事件的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
豆瓣网的jquery代码实例
Jun 15 Javascript
初学Javascript的一些总结
Nov 03 Javascript
Mootools 1.2教程(3) 数组使用简介
Sep 14 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
Mar 25 Javascript
跨域请求的完美解决方法(JSONP, CORS)
Jun 12 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
May 17 Javascript
react 实现页面代码分割、按需加载的方法
Apr 03 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
Nov 30 Javascript
vue 修改 data 数据问题并实时显示操作
Sep 07 Javascript
JS实现简易日历效果
Jan 25 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
Sep 06 #Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 #jQuery
vue-cli history模式实现tomcat部署报404的解决方式
Sep 06 #Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
Sep 06 #Javascript
layui 弹出删除确认界面的实例
Sep 06 #Javascript
vue-cli3跨域配置的简单方法
Sep 06 #Javascript
微信小程序 组件的外部样式externalClasses使用详解
Sep 06 #Javascript
You might like
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
PHP 文件系统详解
2012/09/13 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
php文件上传的两种实现方法
2016/04/04 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
小程序实现搜索框
2020/06/19 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python的Flask框架的简介和安装方法
2015/11/13 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
Python如何输出警告信息
2020/07/30 Python
常用的10个Python实用小技巧
2020/08/10 Python
美国在线珠宝商店:SZUL
2017/02/11 全球购物
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
美国一站式电动和手动工具商店:International Tool
2020/11/26 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
社区党建工作汇报材料
2014/10/27 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书