layui 表格在排序之后没有重新渲染问题

问题描述:

在layui表格中,最后一列增加了操作按钮,并且在某些行设置了样式,但是在排序之后,按钮的点击事件失效了,样式也没有了,可能是没有执行done回调

原因:

done回调只有在render和reload的时候执行

解决办法:

在生成完表格之后,监听排序事件,在排序事件里面执行reload方法,重新执行done回调,并且初始化排序

例子:

html代码

<div id="tableTest" lay-filter="test"></div>

js代码:

var table = layui.table;
var dataList = [
    { No: 1, Name: '张三' },
    { No: 2, Name: '李四' }
];
var titleList = [[
      { field: 'No', title: '序号' },
      { field: 'Name', title: '名字' }
]];
table.render({ elem: '#tableTest', data: dataList, cols: titleList, id: 'tableId' });
table.on('sort(test)', function(obj) {
    table.reload('tableId', {
        initSort: obj
    });
});
table.reload('tableId', {});

注意:

  ①sort事件()里面的test是初始容器里面的lay-filter属性的值

  ②reload里面的tableId是table.render里面的id值,唯一标识表格

 

posted @ 2019-04-16 16:38  kcat  阅读(6583)  评论(0编辑  收藏  举报