博客专栏

EEPW首页 > 博客 > 如何限制datatable列宽--(收缩内容)

如何限制datatable列宽--(收缩内容)

发布人:魏华 时间:2021-08-11 来源:工程师 发布文章

 2021-8-10     前端达人  前端及开发文章及欣赏

实现功能: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>';			

		

	

	
		
		
			
			
				
			

		

		
			
			
				}			

		

	


原文链接:https://blog.csdn.net/zz_chst/article/details/79587936?utm_source=blogxgwz5

蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码ben_lanlan,报下信息,会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

文章来源:csdn

分享此文一切功德,皆悉回向给文章原作者及众读者.
免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计( www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 、平面设计服务


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。




技术专区

关闭