JqGrid实现水平滚动条

这几天由于业务需求,用到了jqgrid,用起来感觉很强大,提供了丰富的功能。也碰了不少壁。

问题:对于表字段少的,就直接用无影响,但是有的表字段很多,就导致显示起来很别捏,如图:

默认情况下是没有开启水平滚动条的,也就是说无论有多少字段,都会显示在这一屏,这岂不是太操蛋?

解决:还好,官方提供了属性开启横向滚动条,通过翻阅官方文档,发现通过设置这两个属性:

shrinkToFit:false,  

autoScroll: true, 

$("#grid-table").jqGrid({  
		url:'${ctx}/excel.do?method=getList',
	    datatype: 'json',     
	    mtype:'post',
	    colNames:['建设名称','日期','设计单位','开工日期','建设地址','建设单位','发证机关','监理单位','竣工日期','证书编号','工程内容','施工单位'],     
	    colModel:[
	        //{name:'rowindex',index:'rowindex', width:40,align:'center'},     
	        {name:'jsmc',index:'jsmc', width:320,sortype:String},    
	        {name:'rq',index:'rq', width:80},
	        {name:'sjdw',index:'sjdw', width:170},
	        {name:'htkgrq',index:'htkgrq', width:80},
	        {name:'jsdz',index:'jsdz', width:150},     
	        {name:'jsdw',index:'jsdw', width:150},     
	        {name:'fzjg',index:'fzjg', width:100},       
	        {name:'jldw',index:'jldw', width:150},
	        {name:'htjgrq',index:'htjgrq', width:80},
	        {name:'zsbh',index:'zsbh', width:90},
	        {name:'gcnr',index:'gcnr', width:90},
	        {name:'sgdw',index:'sgdw', width:150}
	     ],    
	    imgpath: '',     
	    rowNum:50, 
		rowList:[50,100,150],   
		pager: "#grid-pager",  
	    altRows: true, 
	    rownumbers:true,
		multiselect: false,  
		multiboxonly:true,
		viewrecords: true,
		pagerpos:'left',
		sortorder: "asc",     
		height: gridHeight,
		autowidth:true,
		shrinkToFit:false,  
		autoScroll: true, //开启水平滚动条
		postData:{type:type},
		loadComplete : function() {
			var table = this;
			setTimeout(function(){
				updatePagerIcons(table);
			}, 0);
		},
		recordtext: " 显示第 {0} - {1} 项纪录,  共 {2} 项",
	    emptyrecords: "当前没有对应记录信息",
		loadtext: "卖力加载中...",
		pgtext : " {0}页 ,共 {1} 页"
	});

接着还要添加css样式:

 <style> 
 	.ui-jqgrid .ui-jqgrid-bdiv { 
 	    border-top: 1px solid #E1E1E1; 
 	    overflow-x: auto; 
 	} 
 	.frozen-div, .frozen-bdiv {
 	    background-color: #E4E6E9;/*与网页背景色一致*/ */
 	} 
 </style> 

 

效果如下:

 

### 实现或调整 jqGrid 横向滚动条 为了确保 jqGrid 的横向滚动条能够正常工作并根据页面宽度自动调整,可以采取以下几种方式: #### 方法一:动态设置表格宽度 当表格加载完成后,可以通过 `gridComplete` 函数来动态调整表格的宽度,使其适应父容器的大小。这有助于消除不必要的滚动条。 ```javascript $("#yourGridId").jqGrid({ // ...其他配置项... gridComplete: function() { $("#yourGridId").setGridWidth($(this).parent().width()); } }); ``` 这种方法适用于希望表格自适应其所在容器的情况[^2]。 #### 方法二:固定表头宽度与列宽 如果遇到横向滚动条无法显示的问题,可能是因为某些列的宽度超出了整个表格设定的最大宽度。此时应检查每列的 `width` 属性以及整体表格的 `width` 设置,并适当增加表格总宽度或者减少单个列的宽度。 ```javascript $("#dataInfo").jqGrid({ datatype: "local", colNames: ['轨迹', '车牌号码'], colModel: [ {name: 'CheckBox', index: 'CheckBox', align: 'center', width: 100, sortable: false}, {name: 'LicenceNumber', index: 'LicenceNumber', align: 'left', width: 250} ], width: 1400, autowidth: false // 关闭此选项以允许手动指定宽度 }); ``` 这里需要注意的是关闭了 `autowidth` 参数,以便能精确控制表格的整体尺寸[^3]。 #### 方法三:启用自动缩放功能 对于那些想要让表格既保持灵活性又能拥有良好用户体验的应用场景来说,开启 `shrinkToFit`, `autoScroll` 和 `autowidth` 这些参数是一个不错的选择。这些参数可以让表格更好地响应不同的屏幕分辨率和窗口大小变化。 ```javascript $("#yourGridId").jqGrid({ // ...其他配置项... autowidth: true, shrinkToFit: false, autoScroll: true }); ``` 上述配置使得表格不仅可以在较小屏幕上正确展示全部内容,而且还能提供平滑流畅的滚动体验[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值