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 相关文章推荐
用ADODB.Stream转换
Jan 22 Javascript
关于jquery css的使用介绍
Apr 18 Javascript
面向对象继承实例(a如何继承b问题)(自写)
Jul 01 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
Nov 02 Javascript
jQuery中next方法用法实例
Apr 24 Javascript
jQuery插件pagewalkthrough实现引导页效果
Jul 05 Javascript
Javascript农历与公历相互转换的简单实例
Oct 09 Javascript
js字符串操作总结(必看篇)
Nov 22 Javascript
vue中组件的3种使用方式详解
Mar 23 Javascript
js/jQuery实现全选效果
Jun 17 jQuery
vue的keep-alive用法技巧
Aug 15 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
第九节 绑定 [9]
2006/10/09 PHP
PHP设计聊天室步步通
2006/10/09 PHP
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
python 性能优化方法小结
2017/03/31 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
用python制作个音乐下载器
2021/01/30 Python
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
附答案的Java面试题
2012/11/19 面试题
Android interview questions
2016/12/25 面试题
母婴店促销方案
2014/03/05 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
房产证明范本
2015/06/19 职场文书