dataTable某列内容过长自动收缩

实现功能:dataTable某列内容过长的话,只显示部分内容,鼠标点击显示全部,再点击显示部分。可以切换。


效果图:



鼠标点击:



如果再次点击,备注内容又收缩了。


JS实现代码如下:


var remarkShowLength = 10;//默认现实的字符串长度

datatable中的配置:

首先在 columnDefs 中显示文本的时候,如果超长,就只显示部分。

然后通过 createdRow ,如果备注信息超长的话,给该td元素添加上onclick时间,鼠标点击的时候,可以进行切换。并且将全部的字符信息 data.remarks 放置到属性中去,以便后面可以取出来。


"createdRow": function( row, data, dataIndex ) {
   if(data.remarks.length > remarkShowLength){//只有超长,才有td点击事件
      $(row).children('td').eq(7).attr('onclick','javascript:changeShowRemarks(this);');
   }
   $(row).children('td').eq(7).attr('content',data.remarks);
},
"ajax" : {
   "url" : "/cluster/list?importantLevel=" + $('#searchImportantLevelSelect').val()
},
"columnDefs" : [

      {
         "type": "date",
         "targets": 7,
         "render": function (data, type, full, meta) {
            if (full.remarks.length > remarkShowLength) {
		 return getPartialRemarksHtml(full.remarks);//显示部分信息
		} else {
return full.remarks;//显示原始全部信息 }
		}
}
]


下面从td的属性中取出全部的remark,然后根据当前是显示的全部还是显示的部分信息,进行切换。

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


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

//全部备注信息
function getTotalRemarksHtml(remarks){
      return remarks + '&nbsp;&nbsp;<a href="javascript:void(0);" >收起</a>';
}









评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值