layui中table表格的操作系列操作(删除,编辑,添加,查询)等点击按钮的相关操作

layui表格动态渲染

动态表格的渲染
layui.use(['table','form','layer','jquery'], function() {
                var table = layui.table;
                var form = layui.form;
                var layer = layui.layer;
                var  $ = layui.jquery;
                //动态表格渲染
                table.render({
                    elem: '#test',
                    url: '${pageContext.request.contextPath }/TeacherInfoController/selectAllTeacherInfo',
                    toolbar: '#toolbarDemo', //开启头部工具栏,并为其绑定左侧模板
                    defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
                        title: '教师信息表',
                        layEvent: 'LAYTABLE_TIPS',
                        icon: 'layui-icon-tips'
                    }],
                    title: '教师信息标表',
                    response: {
                        statusName: 'code' //数据状态的字段名称,默认:code
                        ,statusCode: 0 //成功的状态码,默认:0
                        ,msgName: '' //状态信息的字段名称,默认:msg
                        ,countName: 'count' //数据总数的字段名称,默认:count
                        ,dataName: 'data' //数据列表的字段名称,默认:data
                    },
                    cols: [
                        [{
                            type: 'checkbox',
                            fixed: 'left'
                        }, {
                            field: 'tid',
                            title: '序号',
                            width: 60,
                        }, {
                            field: 'tname',
                            title: '教师姓名',
                            width: 80,
                        }, {
                            field: 'tpolitical',
                            title: '政治面貌',
                            width: 90,
                            edit: 'text'
                        }, {
                            field: 'tidnetitycard',
                            title: '身份证号',
                            width: 115,
                            edit: 'text',
                        }, {
                            field: 'taddress',
                            title: '住址'

                        }, {
                            field: 'timg',
                            title: '教师头像',
                            width: 95
                        }, {
                            field: 'tphone',
                            title: '手机号码',
                            width: 90,
                            edit: 'text',

                        }, {
                            field: 'temial',
                            title: '邮箱',
                            width: 85,
                        }, {
                            field: 'tsex',
                            title: '性别'

                        }, {
                            field: 'tbirthday',
                            title: '出生日期',
                            width: 108,

                        }, {
                            field: 'teducation',
                            title: '学历',
                            width: 90,
                        }, {
                            field: 'tgraduate',
                            title: '毕业学校',
                            width: 108,

                        }, {
                            field: 'tmajor',
                            title: '所学专业',
                            width: 108,
                        }, {
                            field: 'thiredate',
                            title: '入职时间',
                            width: 108,
                        },{
                            field: 'tnum',
                            title: '教师编号',
                            width: '85',
                        },{
                            field: 'ttile',
                            title: '职称',
                            width: '80',
                        }, {
                            field: 'tpostion',
                            title: '职位',
                            width: '75',
                        },{
                            filed:'operation',
                            toolbar: '#barDemo',
                            title:'操作',
                            width:150
                        }]

                    ],
                    page: true,
                    limit:5,
                    limits:[5,8,10,15,20],//可选择每页显示的数量
                    skin:'row',
                    even:true
                });

根据条件查询

1.页面代码部分
<form class="layui-form layui-col-md12 x-so" id="complain_search">
                        教师姓名:
                        <div class="layui-input-inline">
                            <input type="text" name="tname" id="tname" placeholder="请输入查询的教师姓名" autocomplete="off" class="layui-input">
                        </div>
                        <button id="search" class="layui-btn" lay-submit  lay-filter="teachSearch">
                            <i class="layui-icon">&#xe615;</i>
                        </button>
                    </form>
2.实现部分:

2.1.方法一:

layui.define(['form','table'],function () {
               var form = layui.form;
               var table = layui.table;
               form.on('submit(teachSearch)',function (data) {
                   var tname = data.field.tname;
                   alert(tname);
                   table.reload('test',{
                       page:{curr:1},
                       where:{tname:tname},
                       method:'post',
                       url:'${pageContext.request.contextPath }/TeacherInfoController/selectTeacherInfoByName'
                   });
                   return false;
               });

            });

2.2.方法2:(一般推荐使用方法2)

            layui.use(['table','form','layer'],function(){
                var $ = layui.jquery;

                //搜索功能第二种
                $('.teacher_search.layui-btn').on('click', function () {
                    var type = $(this).data('type');
                    active[type] ? active[type].call(this) : '';
                });

                var $ = layui.$, active = {
                    reload: function () {
                        var tname = $('#tname');

                        //执行重载
                        table.reload('tname', {
                            page:{curr:1},
                            where: {
                                key: {
                                    field: tname.val()
                                }
                            },
                            method:'post',
                            url:'${pageContext.request.contextPath }/TeacherInfoController/selectTeacherInfoByName'
                        });
                    }
                };
                $('.teacher_search .layui-btn').on('click', function () {
                    var type = $(this).data('type');
                    active[type] ? active[type].call(this) : '';
                });

                // 刷新表格
                $('#btn-refresh').on('click', function () {
                    tableIns.reload()
                });

            });

3.修改操作

3.1.修改部分代码
<script type="text/html" id="barDemo">
            <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>
3.2.弹框部分代码

         <div class="layui-row" id="popUpdateTeacherInfo" style="display:none;">
                <div class="layui-col-md10">
                    <form class="layui-form layui-from-pane" lay-filter="formTeacherFilter" action="" style="margin-top:20px" >
                        <div class="layui-form-item">
                            <label class="layui-form-label">教师编号:</label>
                            <div class="layui-input-block">
                                <input type="text" name="teacherNum" id="teacherNum" required  lay-verify="required" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                        <div class="layui-form-item">
                            <label class="layui-form-label">教师职称</label>
                            <div class="layui-input-block">
                                <input type="text" name="teacherTitle" id="teacherTitle" required  lay-verify="required" autocomplete="off" placeholder="请输入教师职务" class="layui-input">
                            </div>
                        </div>

                        <div class="layui-form-item" style="margin-top:40px">
                            <div class="layui-input-block">
                                <button class="layui-btn  layui-btn-submit " lay-submit="" lay-filter="upload">确认修改</button>
                                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                            </div>
                        </div>
                    </form>
                </div>
         </div>
</body>

3.3.核心部分代码
在这里插  //修改
                    else if(obj.event === 'edit') {
                        //弹出修改教师信息页面
                        if (obj.event === 'del') {
                            layer.confirm('真的删除行么', function (index) {
                                obj.del();
                                layer.close(index);
                            });
                        }else if(obj.event === 'edit'){
                            //弹出修改框
                            layer.open({
                                type:1, //layer提供了5种层类型。可传入的值有:0:(信息框,默认),1:(页面层),2:(iframe层),3:(加载层),4:(tips层)
                                title:'修改教师信息',
                                area:['420px','300px'],
                                content:$("#popUpdateTeacherInfo")  //引入弹出层页面
                            })
                            uploadFormValue(obj,data);
                        }

                    }
                });

                //监听弹出框表单提交,massage是修改界面的表单数据'submit(demo11),是修改按钮的绑定
                function uploadFormValue (obj,data) {
                     form.val("formTeacherFilter",{
                        "teacherNum":data.tnum,
                        "teacherTitle":data.ttile
                     });
                     form.on('submit(upload)',function (message) {
                          var teacherNum = document.getElementById("teacherNum").value;
                          var teacherTitle = document.getElementById("teacherTitle").value;
                          $.ajax({
                              type:'post',
                              url:'${pageContext.request.contextPath }/TeacherInfoController/updateTeacherInfoByTeacherNum',
                              data:{
                                  teacherNum:teacherNum,
                                  teacherTitle:teacherTitle
                              },success:function(data){
                                  alert(data);
                                  if (data == 1){
                                      layer.closeAll('loading'),
                                      layer.load(3);
                                      layer.msg("修改数据成功",{icon:6});
                                      setTimeout(function () {
                                           alert("恭喜修改成功,3秒后跳转")
                                      },3000);
                                      window.location.href ="${pageContext.request.contextPath }/pageJumpController/enterTeacherInfoList";
                                      layer.closeAll();
                                  }
                                  if(data == 0){
                                      layer.msg("修改数据失败",{icon:5});
                                  }

                              }
                          })
                     })
                }

            });入代码片

4.删除操作

//监听行工具事件
                table.on('tool(test)', function(obj) {
                    var data = obj.data;
                    console.log(obj);
                    //查看
                    if (obj.event == 'detail'){layer.msg('ID:' + data.id + ' 的查看操作');}
                    //删除
                    else if(obj.event === 'del') {
                        layer.confirm('真的删除行么', function(index) {
                            $.ajax({
                                type:'post',
                                url:'${pageContext.request.contextPath }/TeacherInfoController/deleteTeacherInfoByTeacherNum',
                                data:{teacherNum:data.tnum},
                                success:function(data){

                                    if (data == 1){
                                        obj.del();
                                        layer.close(index);
                                        parent.layer.msg("删除成功", {icon: 6});
                                        //parent.location.reload();
                                        window.location.href ="${pageContext.request.contextPath }/pageJumpController/enterTeacherInfoList";
                                    }
                                    if(data == 0){
                                        parent.layer.msg("删除失败", {icon: 5});
                                    }
                                }
                            })

                        });
                    }

批量删除

/头工具栏事件
                table.on('toolbar(test)', function(obj) {
                    var checkStatus = table.checkStatus(obj.config.id);
                    switch(obj.event) {
                        case 'getCheckData':
                            var data = checkStatus.data;
                            if(data == 0){layer.msg("至少选择一行数据进行删除吧",{icon:2});}
                            else{
                                layer.alert(JSON.stringify(data));
                                var tinfos = "";
                                var tinfo = new Array();
                                /*for (var i = 0; i<data.length; i++){
                                       tinfo.push(data[i].tid);
                                    if (data[i].size-1 == i){
                                       tinfo.push(data[i].tid+",");
                                   }
                                }*/
                                for (var  i in data){
                                    tinfos += data[i].tid +",";

                                }
                                //alert(tinfo);
                                alert(tinfos)

                                layer.msg("开始批量删除中。。。。",{icon:16,shade:0.2,time:5000,})
                                $.ajax({
                                    type:'post',
                                    url:'${pageContext.request.contextPath }/TeacherInfoController/batchDeletionTeacherInfo',
                                    data:{tinfos,tinfos},
                                    success:function (data) {
                                        parent.layer.closeAll('loading.....');
                                        if(data == 1){
                                            parent.layer.msg('批量删除成功!', {icon: 1,time:3000,shade:0.3});
                                            window.location.href ="${pageContext.request.contextPath }/pageJumpController/enterTeacherInfoList";

                                        }
                                        if(data == 0){
                                            parent.layer.msg('批量删除失败!', {icon: 2,time:3000,shade:0.3});
                                        }

                                    }
                                });
                            };
                            break;

注:批量删除sql语句写法
在这里插<delete id="batchDeletionTeacherInfoByTeacherID">
        delete  from teacher where tid in
        <!-- forEach : 用来循环 collection : 用来指定循环的数据的类型 可以填的值有:array,list,map item
			: 循环中为每个循环的数据指定一个别名 index : 循环中循环的下标 open : 开始 close : 结束 separator : 数组中元素之间的分隔符 -->
        <foreach collection="list" item="tlist" open="(" close=")" separator=",">
                #{tlist}
        </foreach>
    </delete>入代码片
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在layui table表格实现导出操作,需要使用第三方插件,如tableX、tableExport等。这里以tableX为例,具体实现步骤如下: 1. 引入tableX插件和相关依赖文件 ```html <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.1.5/jszip.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/js-xlsx/0.8.0/xlsx.full.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/blobjs/1.1.1/Blob.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/TableExport/5.2.0/js/tableexport.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/tableExport.jquery.plugin/1.0.3/js/tableExport.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/table-x/1.0.2/js/table-x.min.js"></script> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/table-x/1.0.2/css/table-x.min.css"> ``` 2. 在table的初始化配置添加导出按钮 ```javascript table.render({ elem: '#demo', url: '/data', cols: [[ {field: 'id', title: 'ID', width: 80}, {field: 'username', title: '用户名', width: 120}, {field: 'email', title: '邮箱', minWidth: 200}, {field: 'sex', title: '性别', width: 80, sort: true}, {field: 'city', title: '城市', width: 100}, {field: 'sign', title: '签名', minWidth: 200}, {field: 'experience', title: '积分', width: 80, sort: true}, {field: 'score', title: '评分', width: 80, sort: true}, {field: 'classify', title: '职业', width: 100}, {field: 'wealth', title: '财富', width: 135, sort: true}, ]], page: true, toolbar: 'default', //开启头部工具栏,并为其绑定左侧模板 defaultToolbar: ['exports', 'print', 'filter'], //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可 done: function(res, curr, count) { tableExport.render({ elem: '#demo', filename: '数据列表', sheetName: 'Sheet1', type: 'xlsx', title: '数据列表', page: true, style: 'border: 1px solid #ddd;text-align: center;' }); } }); ``` 其,toolbar配置项开启头部工具栏,并为其绑定左侧模板;defaultToolbar配置项自定义头部工具栏右侧图标,其'exports'表示导出按钮。 3. 实现导出功能 ```javascript tableExport.render({ elem: '#demo', filename: '数据列表', sheetName: 'Sheet1', type: 'xlsx', title: '数据列表', page: true, style: 'border: 1px solid #ddd;text-align: center;' }); ``` 其,elem表示要导出的table元素的选择器,filename表示导出文件名,sheetName表示导出文件的sheet名称,type表示导出文件类型,title表示导出文件的标题,page表示是否导出分页,style表示导出文件的样式。 4. 完整代码 ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>layui表格导出操作</title> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.1.5/jszip.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/js-xlsx/0.8.0/xlsx.full.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/blobjs/1.1.1/Blob.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/TableExport/5.2.0/js/tableexport.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/tableExport.jquery.plugin/1.0.3/js/tableExport.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/table-x/1.0.2/js/table-x.min.js"></script> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/table-x/1.0.2/css/table-x.min.css"> </head> <body> <table id="demo" lay-filter="test"></table> <script> layui.use(['table', 'tableExport'], function() { var table = layui.table; var tableExport = layui.tableExport; table.render({ elem: '#demo', url: '/data', cols: [[ {field: 'id', title: 'ID', width: 80}, {field: 'username', title: '用户名', width: 120}, {field: 'email', title: '邮箱', minWidth: 200}, {field: 'sex', title: '性别', width: 80, sort: true}, {field: 'city', title: '城市', width: 100}, {field: 'sign', title: '签名', minWidth: 200}, {field: 'experience', title: '积分', width: 80, sort: true}, {field: 'score', title: '评分', width: 80, sort: true}, {field: 'classify', title: '职业', width: 100}, {field: 'wealth', title: '财富', width: 135, sort: true}, ]], page: true, toolbar: 'default', defaultToolbar: ['exports', 'print', 'filter'], done: function(res, curr, count) { tableExport.render({ elem: '#demo', filename: '数据列表', sheetName: 'Sheet1', type: 'xlsx', title: '数据列表', page: true, style: 'border: 1px solid #ddd;text-align: center;' }); } }); }); </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值