某些业务场景需要把一些信息带入页面,而这些信息又不用给展示出来,一般来说想到的就是隐藏列,利用LayUI表格的 hide:true 就能实现,它还提供筛选功能,但LayUI的表格筛选功能就有个问题,就是会把表格中隐藏的列也给显示出来,如图
列名为ID的很明显我已经设置成了hide,效果图(表格)中不会显示这一列,而筛选中有出现了这一列,这样在筛选中如果把ID给勾上了,ID就会显示出来,那我们前面设置的 hide:true 就没有任何意义了,后来在群里面交流了一波,解决了这个问题,就是不用 hide:true 这个属性,直接拿这一行的所有的数据,也能达到目的,举个例子:
查看详情(按钮或者链接(A标签),我这里是按钮 ),
{
title: '操作',
width: 120,
fixed: 'right',
align: 'center',
templet : function (cell) {
//这里的cell可以拿到当前行的所有数据
var id = parseInt(cell.id);
return '<div><a class="layui-btn layui-btn-xs" lay-event="chakan" style="background-color:#009688">查看详情</a></div>'
}
},
一般来说会传一个ID,只需要监听图中的查看按钮就可以了
//监听按钮事件
table.on('toolbar(table)', function(obj){
var data = obj.data;
//获得 lay-event 对应的值
var layEvent = obj.event;
//获得ID
var id = data.id;
//这里可以用if判断,也可以用swith,效果一样
if(layEvent === 'chakan'){ //查看
window.open('${base}/XXX/xxx?ID'+id,'_self');
return;
}
switch (obj.event) {
case 'chakan': //查看
window.open('${base}/XXX/xxx?ID'+id,'_self');
break;
}
})
//好像监听事件代码写上下这两种都可以监听到
//监听按钮事件
table.on('tool(table)',function (obj) {
})
这样查看功能就实现了,且筛选也不会出现隐藏的字段了