关于layui的table行变色问题

在使用layui过程中,发现这个table很强大。譬如可以进行表头锁定,导出和自适应,动态隐藏等等。但是有些业务或许需要一些行色来区分一些数据,那么如何实现呢?

对没错,万能的js。直接上码!

done: function(res, curr, count){
    $('th').css({'font-weight': 'bold', 'font-size': '15','color': 'orange','background':'linear-gradient(#f2f2f2,#cfcfcf)'});	//进行表头样式设置
    for(var i in res.data){		//遍历整个表格数据
        var item = res.data[i];		//获取当前行数据
        // 01.如果ID等于30则复选框禁止选择
        if(item.ck1==30){
            $('tr[data-index=' + i + '] input[type="checkbox"]').prop('disabled', true);	//禁用当前
            $('tr[data-index=' + i + '] input[type="checkbox"]').parent('div').css('display', 'none');	//隐藏这个复选框
            table.render('checkbox');// 重新渲染一下chackbox
        }
        // 02.如果已结算则整行变绿色
        if(item.ck23=='ok'){
            $("tr[data-index='" + i + "']").attr({"style":"background:#99ff99"});  //将当前行变成绿色
        }
        // ……
    }
}

如上,在layui的table中,用来触发回调函数的done,在这里写就可以咯。我们还可以进行表头的颜色更改,基于dom操作。循环res结果集对象,就可以轻易获得整个表的数据,然后就可循环获得行数据,进而精确到每个单元格。介于此,可以实现诸如复选框按条件隐藏、值条件判断,行变色等等……

还有如下【例如一些老ssh项目中进行多选传参的实现方法】:

$("#generate_tag").click(function(){    //生成标签
    var check_obj_list = table.checkStatus('MyTable').data;   //checkStatus方法的参数是table的ID,返回值是复选框选中的对象数组
    if(check_obj_list.length == 0){
        layer.msg("请先选择一条记录哦!");
    }else{
        var select_ids = "";
        $.each(check_obj_list, function(index, obj){
            select_ids += obj.ck1 + ",";     //使用对象去‘点’列的lay-data:field属性值,就会读出格子内的数据
        });
        window.open('<%=request.getContextPath()%>/Module/visaInformation/EditTag_print.action?OrderIds=' + select_ids, 'newwindow', 'height=800, width=1000, top=0,left=0, toolbar=no, menubar=true, scrollbars=yes, resizable=yes,location=no, status=no');
        //console.log(JSON.stringify(check_obj_list));    //测试结果集获取情况
    }
});

有时候或许会做一些统计,例如合计数据;那么最后一个复选框就会显得多余,还是可以用js实现隐藏这个复选框:

done: function(res, curr, count) {
    var len = res.data.length - 1;
    for (var i in res.data) {        //遍历整个表格数据
        var item = res.data[i];		//获取当前行数据
        if(len==i){
            $('tr[data-index=' + i + '] input[type="checkbox"]').parent('div').css('display', 'none');	//隐藏这个复选框
        }
    }
}

总之,layuitable是个十分好用的table插件。 

over

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值