layui table 表头动态修改

需求:

今日遇到一个需求:table重载后展示动态表头

问题:

碰到一个问题:
表格重载后,表头没有按照重载方法传入的cols参数展示,而是还是展示原先的表头

原因:

经过一番排查后发现原因,layui中 table.reload(ID, options) 在接收options中的参数中,如果参数是数组形式,那并不会完全替换历史参数,而是覆盖到对应长度。如果之前传入参数是[1,2,3,4],重载传入参数是[a,b.c],那后台获取到的参数是[a,b,c,4]

解决:

这个问题解决起来并不复杂,而是复杂在了发现问题的原因,实际解决只需要一行关键代码就好,在table的render方法的回调函数中,将cols字段初始化就可以了: this.cols = [ ];

实例

1.表头重载的方法

  //执行重载
   form.on('select(interest)', function(data){
		  console.log(data);
		  let v=data.value;
		   table.reload('tableId', {
	               page: {curr: 1 },//重新从第 1 页开始 
	               //where:[],
	               cols: objCol[v]//新的表头
	           });
	});

2.关键代码!!!!!


//表格渲染
table.render({
    elem:"#tableId",
    cols:cols,
    url:"....",
    defaultToolbar:[],
    data:[],
    done:function (res,curr,count) {
        this.cols = []; //(关键代码)将cols初始化,否则表格重载时无法正确重新渲染表头
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值