layui table 不直接使用原始数据赋值,避免增加'LAY_TABLE_INDEX'字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了layui table 不直接使用原始数据赋值,避免增加'LAY_TABLE_INDEX'字段相关的知识,希望对你有一定的参考价值。

参考技术A

其中data的赋值最好不要直接使用原始数据,避免数据经过组件的操作后,增加索引字段 LAY_TABLE_INDEX ,如:

所以应将数据完全复制才去赋值,使用以下方法:

layui修改页面layer.open弹出层给子页面标签赋值

修改页面layer.open弹出层给子页面标签赋值


欢迎使用Markdown编辑器

       //监听工具条
            table.on('tool(auth-table)', function (obj) 
                var data = obj.data;
                var layEvent = obj.event;

      if (layEvent === 'edit') 
                    var index = layer.open(
                        title: '编辑【' + data.name + '】菜单',
                        type: 2,
                        shade: 0.2,
                        maxmin: true,
                        shadeClose: true,
                        area: ['600px', '650px'],
                        content: '/SysMenu/EditSysMenu',
                        success: function (layero, index) 
                            //向layer页面传值,传值主要代码
                            var body = layer.getChildFrame('body', index);
                            //radio 赋值
                            body.find("input[name=MenuType][value=1]").attr("checked", data.meunType == 1 ? true : false);
                            body.find("input[name=MenuType][value=2]").attr("checked", data.meunType == 2 ? true : false);
                            body.find("input[name=MenuType][value=3]").attr("checked", data.meunType == 3 ? true : false);
                            //获取name名为Id的隐藏控件进行赋值
                            body.find("input:hidden[name='Pid']").val(data.pid);
                            body.find("input:hidden[name='ParentMenuName']").val(data.parentName);
                            body.find("[name='Id']").val(data.id);
                            //获取name名为Id的控件进行赋值
                            body.find("[name='Name']").val(data.name);
                            body.find("[name='MenuDesc']").val(data.menuDesc);
                            body.find("[name='Icon']").val(data.icon);
                            body.find("[name='Router']").val(data.router);
                            body.find("[name='Sort']").val(data.sort);
                            //id为Company的静态下拉框选中相应的值
                            body.contents().find("#Status option[value='" + data.status + "']").attr("selected", "selected");
                            //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
                            var iframeWin = window[layero.find('iframe')[0]['name']];
                            //执行表单重新渲染的方法
                            iframeWin.myResend();

                             已取消下拉框,改成树形下拉框
                            //赋值动态下拉框调用子页面的方法,页面open完子页面数据还没加载完,传个回调函数
                            //iframeWin.flGetMenus(() => 
                            //    body.contents().find("#Pid option[value='" + data.pid + "']").attr("selected", "selected");//选中下拉框
                            //    iframeWin.layui.form.render(); //页面渲染
                            //);


                        ,
                        yes: function () 

                        
                    );
                    return false;
                
            );

以上是关于layui table 不直接使用原始数据赋值,避免增加'LAY_TABLE_INDEX'字段的主要内容,如果未能解决你的问题,请参考以下文章

[Layui]Open子页面动态下拉框赋值解决办法

layui修改页面layer.open弹出层给子页面标签赋值

随笔:ajax传递数组,layui父子页面传值,下来菜单赋值,父页面数据获取,表格数据替换为字符串

layui 数据表格使用

layui实现table加载的示例代码

tableView.tableHeaderView赋值后立即刷新