layui table 保存状态赋值checkbox
在项目中遇到一个问题,layui的checkbox复选框选择之后切换分页返回时选择状态消失,需要重新给checkbox赋值、
设置一个缓存set,保存选中项
var checkedSet = new Set();
监听点击check事件
table.on('checkbox(dataguid1Table)', function(obj){
console.log(obj.checked); //当前是否选中状态
console.log(obj.data); //选中行的相关数据
console.log(obj.type); //如果触发的是全选,则为:all,如果触发的是单选,则为:one
//选中时加入set 否则移除
if(obj.checked){
checkedSet.add(obj.data.uuid);
}else{
checkedSet.delete(obj.data.uuid)
}
console.log(checkedSet);
});
在表格渲染之前对check赋值,lay表格生命周期官网没有,parseData: function(res)在渲染表格之前,就在这个方法里面做文章
parseData: function(res){ //res 即为原始返回的数据
for(var i in res.rows){
if(checkedSet.has(res.rows[i].uuid)){
//如果set集合中有的话,给rows添加check属性选中
res.rows[i]["LAY_CHECKED"] = true;
}
}
return {
"code": res.status, //解析接口状态
"count": res.total, //解析数据长度
"data": res.rows //解析数据列表
};
}