问题描述:多个功能使用同一个页面时,有时要求不同的功能中展示的表格列数据不同,这就需要动态设置表格列的显示或隐藏。
解决方案: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');
}
});
问题解决。