[ layui 笔记] table 回调函数实现弹窗预览表格行数据 和 编辑表格行数据

一、查看表格行数据

当layui表格横向字段太多,滚动条查看非常不方便,客户要求每行只展示几条数据,然后给每行一个查看按钮,点击预览可查看所在行全部数据。

1、在 table.on() 监听表格查看按钮点击事件中获得所在行数据 obj

2、用 layer.open() 打开查看页面,content 是查看页面地址

3、在 success 回调函数中用 layer.getChildFrame()读取查看页面的 body 标签,用 body.fine()读取查看页面的 input 输入框的 id

 4、用 val()方法给 input 输入框赋值即可展示表格数据

 先看查看页面效果:

 查看页面代码:

查看按钮监听代码:
table.on('tool(currentTableFilter)', function (obj) {
    var data = obj.data; // 获取当前行数据
    if (obj.event === 'detail') { //预览信息

                    var index = layer.open({
                        title: '预览信息',
                        type: 2, //0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
                        shade: 0.2,
                        maxmin: true,
                        shadeClose: true,
                        area: ['100%', '100%'],
                        content: 'detail.html',
                        success: function (layero, index) { //回调函数
                            console.log("回调函数", data)
                            var body = layer.getChildFrame('body', index)
                            body.find('#id').val(data.id)
                            body.find('#name').val(data.name)
                            body.find('#sex').val(data.sex)
                            body.find('#ethnic').val(data.ethnic)
                            body.find('#nativePlace').val(data.nativePlace)
                        }
}

二、编辑表格行数据

查看实现之后就可以编辑了,我这里偷懒是直接在查看页面修改信息

1、监听确认修改按钮,得到data数据

2、向后台接口发起请求,请求代码不能直接用,需要自己写,可以参考后面的请求代码

 浏览器控制台检查是否能成功获取到修改的额数据

 监听修改按钮代码:
//监听编辑按钮
            form.on('submit(saveBtn)', function (data) {
                console.log("编辑信息数据", data)
                
                // 发起请求 可选参数:(urlStr, typeStr, asyncBoole, bodyObj, retFun, token, param)
                http.appRequst("url", "PUT", true, data.field, retAdd, http.token);
                function retAdd(res) {
                    if (res.code == 200) {
                        var index = layer.msg("修改成功", {
                            time: 1000 // 弹窗延迟 1秒
                        }, function () {
                            // 关闭弹出层
                            layer.close(index);
                            // 关闭添加页面
                            var iframeIndex = parent.layer.getFrameIndex(window.name);
                            parent.layer.close(iframeIndex);
                        })
                    }
                }
                return false;
            });
发起请求代码参考:
$.ajax({
                url: '', //请求地址
                type: 'put', //请求类型,post/get/put/delete
                dataType: 'json',//请求的数据类型
                data: JSON.stringify({"name": "张三", "sex": "男"}), //请求的数据,并将请求的数据转成JSON格式
                contentType: 'application/json;charset=UTF-8', //
                headers: {Authorization: '这里写token'}, //请求头token(没有token可以不要这行)
                async: true, //同步还是异步, true异步,false同步
                success: function (res) { //请求成功回调函数
                    console.log("返回的结果",res);
                },
                error: function (res) { //请求失败回调函数
                    console.log("返回的结果",res);
                }
            });

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
layui 表格中,可以通过监听复选框的选择来实现批量操作等功能。具体实现步骤如下: 1. 在表格中添加复选框列,并设置lay-skin属性为primary,表示使用layui风格的复选框。 ``` <table class="layui-table" lay-data="{...}"> <colgroup> ... <col width="50"> </colgroup> <thead> ... <th lay-data="{field:'checkbox', width:50, templet:'#checkboxTpl'}"></th> </thead> <tbody> ... </tbody> </table> <script type="text/html" id="checkboxTpl"> <input type="checkbox" lay-skin="primary"> </script> ``` 2. 在JavaScript代码中监听复选框的选择事件,可以使用layui的form模块来实现。需要注意的是,由于表格是动态生成的,所以需要使用layui的form.render()方法重新渲染表单元素。 ``` layui.use(['table', 'form'], function(){ var table = layui.table, form = layui.form; // 监听复选框选择 table.on('checkbox(test)', function(obj){ console.log(obj.checked); // 当前是否选中状态 console.log(obj.data); // 原始数据 console.log(obj.type); // 类型,如果选则为:row,如果全选则为:all,如果取消选择则为:uncheck console.log(table.checkStatus('test').data); // 获取选中数据 }); // 重新渲染表单元素 form.render(); }); ``` 3. 表格中如果存在分页,则需要在分页时重新渲染表单元素。 ``` table.on('page(test)', function(){ form.render(); }); ``` 以上就是监听表格复选框选择的实现方法。需要注意的是,表格中的复选框列必须有唯一的字段名,否则无法在JavaScript代码中获取选中数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值