使用展开和收起处理table 表格列文本过长

# 场景:

在做后台页面时,经常用到表格,有时候表格列的内容过长,导致所在行拉的很高,严重影响美观性和可用性。

# 解决方案:

1. 不展示内容过长的列。如果没有必要可以不展示或者另放在一个详情页面,毕竟表格宽度有限,只需要展示关键列。

2. 截取展示,只展示内容的前几个字,比如20字,后面省略号,点击省略号展开详情,这种只适合中等长度的列。

3. 当内容实在很长,可以考虑使用弹出框加滚动条的效果,这样多长的内容都能拿的下。

# 记录第二种截取展示

思路:一般现成的表格组件都对列提供格式化函数,可以在列格式化时,进行判读当内容大于界限时,展示部分内容,但是需要把完整的内容放在td的自定义属性中,并加上一个点击相应行数,再这个函数中判断当前是否是完整内容,部署在获取自定义中的完整内容,在展示出来。

#代码(以data-table为例)

列格式化函数:

createdCell(td, cellData, item, row, col) {
    if (item.errorRecord) {
    var part = ''
    $(td).attr("content",item.errorRecord);
    if(item.errorRecord.length > 50){//只有超长,才有td点击事件
         part = getPartialRemarksHtml(item.errorRecord);//显示部分信息
        $(td).attr('isDetail',false);
        $(td).attr('onclick','javascript:changeShowRemarks(this);');
    } else {
         part = item.errorRecord
        $(td).attr('isDetail',true);
    }
   $(td).html(part);
  }
}

展开收起函数:

function changeShowRemarks(obj) {//obj是td
    var content = $(obj).attr("content");
    if (content != null && content != '') {
        if ($(obj).attr("isDetail") == 'true') {//当前显示的是详细备注,切换到显示部分
            $(obj).attr('isDetail', false);
            $(obj).html(getPartialRemarksHtml(content));
        } else {
            //当前显示的是部分备注信息,切换到显示全部
            $(obj).attr('isDetail', true);
            $(obj).html(getTotalRemarksHtml(content));
        }
    }
}

//部分备注信息
function getPartialRemarksHtml(remarks) {
    return remarks.substr(0, 50) + '&nbsp;&nbsp;<a href="javascript:void(0);" ><b>...</b></a>';
}

//全部备注信息
function getTotalRemarksHtml(remarks) {
    return remarks + '&nbsp;&nbsp;<a href="javascript:void(0);" ><span class="glyphicon glyphicon-chevron-up"></a>';
}
 

ps: 参考其它大神的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值