layUI数据表格和弹出层综合案例

  1. 数据表格+弹出层的综合案例【重点】

  1. json准备

{

     "code": 0,

     "msg": "",

     "count": 101,

     "data": [

          {

               "id": "10001",

               "username": "杜甫",

               "email": "xianxin@layui.com",

               "sex": "1",

               "city": "浙江杭州",

               "LAY_CHECKED":true

          },

          {

               "id": "10002",

               "username": "李白",

               "email": "xianxin@layui.com",

               "sex": "1",

               "city": "浙江杭州",

               "LAY_CHECKED": true

          },

          {

               "id": "10003",

               "username": "王勃",

               "email": "xianxin@layui.com",

               "sex": "1",

               "city": "浙江杭州"

          },

          {

               "id": "10004",

               "username": "李清照",

               "email": "xianxin@layui.com",

               "sex": "0",

               "city": "浙江杭州"

          },

          {

               "id": "10005",

               "username": "冰心",

               "email": "xianxin@layui.com",

               "sex": "0",

               "city": "浙江杭州"

          },

          {

               "id": "10006",

               "username": "贤心",

               "email": "xianxin@layui.com",

               "sex": "1",

               "city": "浙江杭州"

          },

          {

               "id": "10007",

               "username": "贤心",

               "email": "xianxin@layui.com",

               "sex": "1",

               "city": "浙江杭州"

          },

          {

               "id": "10008",

               "username": "贤心",

               "email": "xianxin@layui.com",

               "sex": "1",

               "city": "浙江杭州"

          }

     ]

  1. 创建页面

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>数组表格</title>

<link rel="stylesheet" href="resources/layui/css/layui.css">

</head>

<body>

     <!-- 搜索条件开始 -->

     <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">

       <legend>查询条件</legend>

     </fieldset>

     <form action="" class="layui-form" method="post">

          <div class="layui-form-item">

              <div class="layui-inline">

                <label class="layui-form-label">编号:</label>

                <div class="layui-input-inline">

                  <input type="text" name="id"  autocomplete="off" class="layui-input">

                </div>

              </div>

              <div class="layui-inline">

                <label class="layui-form-label">用户名:</label>

                <div class="layui-input-inline">

                  <input type="text" name="username"  autocomplete="off" class="layui-input">

                </div>

              </div>

               <div class="layui-inline">

                <label class="layui-form-label">邮箱:</label>

                <div class="layui-input-inline">

                  <input type="text" name="email"  autocomplete="off" class="layui-input">

                </div>

              </div>

           </div>

           <div class="layui-form-item">

              <div class="layui-inline">

                <label class="layui-form-label">开始时间:</label>

                <div class="layui-input-inline">

                  <input type="text" name="startTime" id="startTime"  readonly="readonly" autocomplete="off" class="layui-input">

                </div>

              </div>

              <div class="layui-inline">

                <label class="layui-form-label">结束时间:</label>

                <div class="layui-input-inline">

                  <input type="text" name="endTime" id="endTime" readonly="readonly"  autocomplete="off" class="layui-input">

                </div>

              </div>

               <div class="layui-inline">

                <label class="layui-form-label">性别:</label>

                <div class="layui-input-inline">

                  <input type="radio" name="sex" value="1" title="">

                    <input type="radio" name="sex" value="0" title="">

                </div>

              </div>

           </div>

           <div class="layui-form-item" style="text-align: center;">

              <div class="layui-input-block">

                <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layui-icon layui-icon-search" id="doSearch">查询</button>

                <button type="reset" class="layui-btn layui-btn-warm layui-btn-sm layui-icon layui-icon-refresh">重置</button>

              </div>

            </div>

     </form>

     

     <!-- 搜索条件结束 -->

     

     

     <!-- 数据表格开始 -->

     <table class="layui-hide" id="userTable" lay-filter="userTable"></table>

     <div style="display: none;" id="userToolBar">

              <button type="button" class="layui-btn layui-btn-sm" lay-event="add">增加</button>

              <button type="button" class="layui-btn layui-btn-sm" lay-event="batchDelete">批量删除</button>

     </div>

     <div  id="userBar" style="display: none;">

       <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>

     </div>

     <!-- 数据表格结束 -->

     

     <!-- 添加和修改的弹出层开始 -->

     <div style="display: none;padding: 20px" id="saveOrUpdateDiv" >

          <form class="layui-form " action="" lay-filter="dataFrm" id="dataFrm">

               <div class="layui-form-item">

                    <div class="layui-inline">

                         <label class="layui-form-label">编号:</label>

                         <div class="layui-input-inline">

                              <input type="text" name="id"  lay-verify="required" autocomplete="off"

                                   class="layui-input">

                         </div>

                    </div>

                    <div class="layui-inline">

                         <label class="layui-form-label">用户名:</label>

                         <div class="layui-input-inline">

                              <input type="text" name="username" autocomplete="off"

                                   class="layui-input">

                         </div>

                    </div>

               </div>

               <div class="layui-form-item">

                    <div class="layui-inline">

                         <label class="layui-form-label">邮箱:</label>

                         <div class="layui-input-inline">

                              <input type="text" name="email"  lay-verify="required|email" autocomplete="off"

                                   class="layui-input">

                         </div>

                    </div>

                    <div class="layui-inline">

                         <label class="layui-form-label">城市:</label>

                         <div class="layui-input-inline">

                              <input type="text" name="city" lay-verify="required" autocomplete="off"

                                   class="layui-input">

                         </div>

                    </div>

               </div>

               <div class="layui-form-item">

                    <div class="layui-inline">

                         <label class="layui-form-label">性别:</label>

                         <div class="layui-input-inline">

                               <input type="radio" name="sex" value="1" checked="checked" title="">

                               <input type="radio" name="sex" value="0" title="">

                         </div>

                    </div>

               </div>

               <div class="layui-form-item" style="text-align: center;">

              <div class="layui-input-block">

                <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layui-icon layui-icon-release" lay-filter="doSubmit" lay-submit="">提交</button>

                <button type="reset" class="layui-btn layui-btn-warm layui-btn-sm layui-icon layui-icon-refresh" >重置</button>

              </div>

            </div>

          </form>

     

     </div>

     <!-- 添加和修改的弹出层结束 -->

     

     <script src="resources/layui/layui.js"></script>

     <script type="text/javascript">

          layui.use([ 'jquery', 'layer', 'form', 'table','laydate' ], function() {

               var $ = layui.jquery;

               var layer = layui.layer;

               var form = layui.form;

               var table = layui.table;

               var laydate=layui.laydate;

               

               //绑定时间选择器

               laydate.render({

                    elem:'#startTime'

               });

               laydate.render({

                    elem:'#endTime'

               })

               

               

               //渲染数据表格

               var tableIns=table.render({

                     elem: '#userTable'   //渲染的目标对象

                   ,url:'resources/json/users.json' //数据接口

                   ,title: '用户数据表'//数据导出来的标题

                   ,toolbar:"#userToolBar"   //表格的工具条

                   ,height:'full-300'

                   ,cellMinWidth:100 //设置列的最小默认宽度

                   ,done:function(res, curr, count){

                    

                   }

                   ,page: true  //是否启用分页

                   ,cols: [[   //列表数据

                    {type: 'checkbox', fixed: 'left'}

                     ,{field:'id', title:'ID', sort:true}

                     ,{field:'username', title:'用户名', sort:true,align:'center'}

                     ,{field:'email', title:'邮箱', align:'center',  templet: function(res){

                       return '<em>'+ res.email +'</em>'

                     }}

                     ,{field:'sex', title:'性别',align:'center',templet:function(d){

                      return d.sex=='1'?'':'';

                     }}

                     ,{field:'city', title:'城市',align:'center'}

                     ,{fixed: 'right', title:'操作', toolbar: '#userBar', width:220,align:'center'}

                   ]]

               })

               

               //监听头部工具栏事件

               table.on("toolbar(userTable)",function(obj){

                     switch(obj.event){

                        case 'add':

                          openAddUser();

                        break;

                        case 'batchDelete':

                          layer.msg('批量删除');

                        break;

                      };

               })

               

               //监听行工具事件

             table.on('tool(userTable)', function(obj){

                  var data = obj.data; //获得当前行数据

                  var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)

                 if(layEvent === 'del'){ //删除

                     layer.msg("删除");

                    layer.confirm('真的删除行么', function(index){

                      layer.close(index);

                      //向服务端发送删除指令

                    });

                  } else if(layEvent === 'edit'){ //编辑

                       openUpdateUser(data);

                  }

                });

               

               var url;

               var mainIndex;

               //打开添加页面

               function openAddUser(){

                    mainIndex=layer.open({

                         type:1,

                         title:'添加用户',

                         content:$("#saveOrUpdateDiv"),

                         area:['800px','400px'],

                         success:function(index){

                              //清空表单数据      

                              $("#dataFrm")[0].reset();

                              url="user/addUser.action";

                         }

                    });

               }

               //打开修改页面

               function openUpdateUser(data){

                    mainIndex=layer.open({

                         type:1,

                         title:'修改用户',

                         content:$("#saveOrUpdateDiv"),

                         area:['800px','400px'],

                         success:function(index){

                              form.val("dataFrm",data);

                              url="user/updateUser.action";

                         }

                    });

               }

               //保存

               form.on("submit(doSubmit)",function(obj){

                    //序列化表单数据

                    var params=$("#dataFrm").serialize();

                    $.post("index.jsp",params,function(obj){

                         layer.msg(obj);

                         //关闭弹出层

                         layer.close(mainIndex)

                         //刷新数据 表格

                         tableIns.reload();

                    })

               });

          });

     </script>

</body>

</html>

<%--

  Created by IntelliJ IDEA.

  User: Lenovo

  Date: 2019/10/4

  Time: 13:11

  To change this template use File | Settings | File Templates.

--%>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">

    <title>数据表格</title>

    <link rel="stylesheet" href="./libs/layui/css/layui.css">

    <link rel="stylesheet" href="./libs/css/global.css">

    <script type="text/javascript" src="./libs/layui/layui.js"></script>

    <style type="text/css">

        .layer-photos-demo{margin:10px 0;}

        .layer-photos-demo img{width: 160px; height: 100px;}

    </style>

</head>

<body>

    <%--搜索条件开始--%>

    <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">

        <legend>查询条件</legend>

    </fieldset>

    <form action="" class="layui-form" method="post">

        <div class="layui-form-item" style="text-align: center">

            <div class="layui-inline">

                <label class="layui-form-label">编号:</label>

                <div class="layui-input-inline">

                    <input type="text" name="id"  autocomplete="off" class="layui-input">

                </div>

            </div>

            <div class="layui-inline">

                <label class="layui-form-label">用户名:</label>

                <div class="layui-input-inline">

                    <input type="text" name="name"  autocomplete="off" class="layui-input">

                </div>

            </div>

            <div class="layui-inline">

                <label class="layui-form-label">邮箱:</label>

                <div class="layui-input-inline">

                    <input type="text" name="email"  autocomplete="off" class="layui-input">

                </div>

            </div>

         </div>

 

 

        <div class="layui-form-item" style="text-align: center">

        <div class="layui-inline">

            <label class="layui-form-label">开始时间:</label>

            <div class="layui-input-inline">

                <input type="text" readonly="readonly" name="startTime" id="startTime"  autocomplete="off" class="layui-input">

            </div>

        </div>

        <div class="layui-inline">

            <label class="layui-form-label">结束时间:</label>

            <div class="layui-input-inline">

                <input type="text" readonly="readonly" name="endTime"  id="endTime" autocomplete="off" class="layui-input">

            </div>

        </div>

        <div class="layui-inline">

            <label class="layui-form-label">性别:</label>

            <div class="layui-input-inline">

                <input type="radio" name="sex" value="1" title="男">

                <input type="radio" name="sex" value="0" title="女">

            </div>

        </div>

 

 

        </div>

        <div class="layui-form-item" style="text-align: center">

            <div class="layui-input-block">

                <button type="submit" class="layui-btn layui-btn-normal layui-btn-sm layui-icon layui-icon-search"  id="doSearch">查询</button>

                <button type="reset" class="layui-btn layui-btn-warm layui-btn-sm layui-icon layui-icon-refresh">重置</button>

            </div>

        </div>

    </form>

    <%--搜索条件结束--%>

    <%--数据表格开始--%>

    <table class="layui-hide" id="userTable" lay-filter="userTable">

 

 

    </table>

    <div style="display: none"  id="userToolBar">

        <div class="layui-btn-group">

            <button type="button" class="layui-btn layui-btn-sm" lay-event="add">

                <i class="layui-icon">&#xe654;</i>

            </button>

            <button type="button" class="layui-btn layui-btn-sm" lay-event="update">

                <i class="layui-icon">&#xe642;</i>

            </button>

            <button type="button" class="layui-btn layui-btn-sm" lay-event="delete">

                <i class="layui-icon">&#xe640;</i>

            </button>

            <button type="button" class="layui-btn layui-btn-sm" lay-event="turn">

                <i class="layui-icon">&#xe602;</i>

            </button>

 

 

        </div>

    </div>

 

 

    <div id="userBar" style="display: none;">

        <div class="layui-btn-container">

            <button class="layui-btn layui-btn-sm" lay-event="add">添加</button>

            <button class="layui-btn layui-btn-sm" lay-event="del">删除</button>

            <button class="layui-btn layui-btn-sm" lay-event="edit">编辑</button>

        </div>

    </div>

    <%--数据表格结束--%>

 

 

 

 

    <%--添加和修改的弹出层开始--%>

    <div style="display: none;padding: 30px;" id="saveOrUpdateDiv" >

        <form class="layui-form" action="" id="dataFrm" lay-filter="dataFrm">

            <div class="layui-form-item" style="text-align: center">

                <div class="layui-inline">

                    <label class="layui-form-label">编号:</label>

                    <div class="layui-input-inline">

                        <input type="text" id="id" name="id" lay-verify="required" autocomplete="off" class="layui-input">

                    </div>

                </div>

 

 

                <div class="layui-inline">

                    <label class="layui-form-label">用户名:</label>

                    <div class="layui-input-inline">

                        <input type="text" id="username" name="username" lay-verify="required" autocomplete="off" class="layui-input">

                    </div>

                </div>

            </div>

 

 

 

 

            <div class="layui-form-item" style="text-align: center">

                <div class="layui-inline">

                    <label class="layui-form-label">邮箱:</label>

                    <div class="layui-input-inline">

                        <input type="text" id="email" name="email" lay-verify="required|email" autocomplete="off" class="layui-input">

                    </div>

                </div>

 

 

                <div class="layui-inline" >

                    <label class="layui-form-label">城市:</label>

                    <div class="layui-input-inline">

                        <input type="text" id="city" name="city" lay-verify="required" autocomplete="off" class="layui-input">

                    </div>

                </div>

            </div>

 

 

 

 

            <div class="layui-form-item" style="text-align: center">

                <div class="layui-inline">

                    <label class="layui-form-label">性别:</label>

                    <div class="layui-input-inline">

                        <input type="radio" name="sex" value="1" title="男">

                        <input type="radio" name="sex" value="0" title="女">

                    </div>

                </div>

 

 

 

 

            </div>

 

 

            <div class="layui-form-item" style="text-align: center">

                <div class="layui-input-block">

                    <button type="submit" class="layui-btn layui-btn-normal layui-btn-sm layui-icon layui-icon-release"  lay-filter="doSubmit" lay-submit="">提交</button>

                    <button type="reset" class="layui-btn layui-btn-warm layui-btn-sm layui-icon layui-icon-refresh">重置</button>

                </div>

            </div>

        </form>

    </div>

    <%--添加和修改的弹出层结束--%>

    <script type="text/javascript">

        layui.use(['element','jquery','laydate','form','layedit','table'],function () {

            var $=layui.jquery;

            var element=layui.element;

            var laydate=layui.laydate;

            var form=layui.form;

            var layedit=layui.layedit;

            //创建一个编辑器

            var editIndex = layedit.build('LAY_demo_editor');

            var table=layui.table;

 

 

            //绑定时间选择器

            laydate.render({

                elem:'#startTime'

            });

            laydate.render({

                elem:'#endTime'

            });

 

 

 

 

            //渲染表格

 

 

            var tableIndex=table.render({

                elem: '#userTable'     //渲染的目标对象

                ,url:'libs/json/persons.json'   //数据接口

                // ,toolbar:'<div>xxxx</div>'

                ,toolbar: '#userToolBar' //开启头部工具栏,并为其绑定左侧模板

                //,toolbar:true   //表格的工具条

                ,defaultToolbar:['filter','exports','print']

                //     ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可

                //         title: '提示'

                //         ,layEvent: 'LAYTABLE_TIPS'

                //         ,icon: 'layui-icon-tips'

                //     }]

                //     ,height:300

                // ,height:'full-300'

                //  ,cellMinWidth:150      //列的最小默认宽度

                ,done:function (res,curr,count) {

                    // alert(res);  //后台url返回的json串

                    // alert(curr); //当前页

                    // alert(count)  //数据总条数

                }

                ,text:{

                    none:'暂无相关数据'

                }

                ,totalRow:true  //开启合并行

                ,title: '用户数据表'   //数据导出的标题

                ,cols: [[      //列数据

                    {type: 'checkbox', fixed: 'left'}

                    ,{type:'numbers',fixed: 'left'}

                    ,{field:'id', title:'ID',  fixed: 'left',sort:true}

                    ,{field:'username', title:'用户名',  edit: 'text'}

                    ,{field:'email', title:'邮箱', edit: 'text', templet: function(res){

                            return '<em>'+ res.email +'</em>'

                        }}

                    ,{field:'sex', title:'性别', sort: true,align:'center',templet:function (d) {

                            return d.sex=='1'?'男':"女";

                        }}

                    ,{field:'city', title:'城市'}

 

 

                    ,{fixed: 'right', title:'操作', toolbar: '#userBar', width:250 ,align:'center'}

                ]]

                ,page: true   //是否启用分页

            });

 

 

 

 

 

 

            //监听头部事件

            table.on("toolbar(userTable)",function (obj) {

                switch(obj.event){

                    case 'add':

                        openAddUser();

                        break;

                    case 'delete':

                        layer.msg('删除');

                        break;

                    case 'update':

 

 

                        break;

 

 

                };

            });

 

 

            var url;

            var mainIndex;

            //打开添加页面

            function openAddUser(){

               mainIndex= layer.open({

                    type:1,

                    title:'添加用户',

                    content:$("#saveOrUpdateDiv"),

                    area:['600px'],

                    success:function (index) {

                        $("#dataFrm")[0].reset();

                        url="user/addUser";

                    },

 

 

                    //btnAlign:'c',

                    // btn:['<div class= "layui-btn-sm layui-icon layui-icon-release">保存</div>','<div class= "layui-btn-sm layui-icon layui-icon-close">关闭</div>'],

                    // yes:function (index,layero) {

                    //     layer.msg("保存成功");

                    // },

                    // btn2:function (index,layero) {

                    //     layer.msg("关闭");

                    //     return true;

                    // }

                });

            };

 

 

 

 

 

 

            //打开添加页面

            function openUpdateUser(data){

                layer.open({

                    type:1,

                    title:'修改用户',

                    content:$("#saveOrUpdateDiv"),

                    area:['600px'],

                    success:function (index) {

                        form.val('dataFrm',data);

                        url="user/updateUser";

                    }

                    //btnAlign:'c',

                    // btn:['<div class= "layui-btn-sm layui-icon layui-icon-release">保存</div>','<div class= "layui-btn-sm layui-icon layui-icon-close">关闭</div>'],

                    // yes:function (index,layero) {

                    //     layer.msg("保存成功");

                    // },

                    // btn2:function (index,layero) {

                    //     layer.msg("关闭");

                    //     return true;

                    // }

                });

            };

 

 

 

 

            //保存

            form.on("submit(doSubmit)",function (obj) {

                // alert(url);

                //序列化表单数据

                var params=$("#dataFrm").serialize();

                $.post("index.jsp",params,function (obj) {

                    layer.msg(obj);

                    console.log(obj)

 

 

                    // //关闭弹出层

                     layer.close(mainIndex);

                    // //刷新数据表格

                     tableIndex.reload();

                });

            })

 

 

            //监听行工具事件

            table.on('tool(userTable)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"

                var data = obj.data; //获得当前行数据

                var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)

                //var tr = obj.tr; //获得当前行 tr 的 DOM 对象(如果有的话)

 

 

                if(layEvent === 'add'){ //查看

                    //do somehing

                    layer.msg("查看")

                } else if(layEvent === 'del'){ //删除

                    layer.confirm('真的删除行么', function(index){

                        lay.msg("成功删除");

                        obj.del(); //删除对应行(tr)的DOM结构,并更新缓存

                        layer.close(index);

                        //向服务端发送删除指令

                    });

                } else if(layEvent === 'edit'){ //编辑

                    //do something

                    layer.msg("更新成功")

                    //同步更新缓存对应的值

                    openUpdateUser(data);

                } else if(layEvent === 'LAYTABLE_TIPS'){

                    layer.alert('Hi,头部工具栏扩展的右侧图标。');

                }

            });

 

 

 

 

           

        });

    </script>

</body>

</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值