Bootstrap

layui表格列动态显示或隐藏

问题描述:多个功能使用同一个页面时,有时要求不同的功能中展示的表格列数据不同,这就需要动态设置表格列的显示或隐藏。

解决方案:layui渲染表格数据后有个完成的回调函数,在回调函数中根据你的逻辑条件动态设置相应列的显示/隐藏样式,代码如下:

// 此处只给出了关键代码
table.render({
            elem: '#tableId',
            url: 'xxxUrl',
            cols: [
                [
                    {
                        field: 'testA',
                        title: 'testA'
                    },
                    {
                        field: 'testB',
                        title: 'testB'
                    }
                ]
            ],
            done: function (res, curr, count) { // 表格渲染完成之后的回调
                if (res.count == null) 
                { // 无数据时直接返回了
                    return;
                }
                // 获取第一列testA的值,此处是根据首列testA的值来判断是否显示testA列
                // 这里可以换成你的逻辑,也可以对其它列做处理
                var testAValue = res.data[0].testA;
                if(testAValue != 1)
                {
                    // 符合隐藏条件的设置隐藏样式,关键代码!
            		$("[data-field='testA']").css('display','none');
            	}
                // 重新渲染
                table.render('select');
            }
        });

问题解决。

;