jqGrid复杂表头及列拖拽后列错位问题

参考网站

1.复杂表头[header grouping]

复杂表头是指不只有一行表头,包含嵌套表头

示例:

使用方法:

 $("#jqGrid").jqGrid('setGroupHeaders', {
   useColSpanStyle:false,
   groupHeaders : [
     { "startColumnName":'OrderID', "numberOfColumns":2, "titleText":'Order Info' },
     { "startColumnName":'ShipName', "numberOfColumns":3, "titleText":'Shipping Details' }
   ]
 })

参数说明:

参数类型描述默认值
useColSpanStyleboolean定义没有分组的列表头上是否增加一个空白的行, false添加空白行,否则此列的表头作为一个整体(不是group的表头是否合并为一行)false
groupHeadersarray数组,配置页头分组显示的内容和规则,可用值如下表如下所示empty
配置类型描述
startColumnNamestringcolModel中的name值,页头分组开始的列
numberOfColumnsinteger页头分组的列数。包含startColumnName配置的列。如果遇到隐藏的列,不包含此列列头,但是还是计算到总数里面
titleTextstring页头分组显示的内容,可以包含html标签

2.拖拽后列错位问题

含有复杂表头,拖拽后表头与数据列错开5px,

方法一:修改源码(不推荐)

 6013行  $firstRow.find('th').eq(idx).width(nw-5px);

有可能会出现其他不可预测的问题

产生5px错位的根本原因:盒模型

v4.7版本(免费版)的源码中给拖拽后的列头赋值时采用了js的width方法,该方法在设置宽度时不包含padding、border等样式产生的宽度,所以导致原生css所设置的padding:0 2px,占据了4px的宽度,border-right占据了1px的宽度,多出了5px的错位。只需在css中做更改即可修复错位的bug。

方法二:修改css样式

.ui-jqgrid .ui-jqgrid-htable th {
     // padding: 0 2px; 源代码
        padding: 0 !important;// 修改后
 }
 .ui-first-th-ltr {
     // border-right: 1px solid; 源代码
        border-right: unset; // 修改后
 }

最新的版本则不存在这种问题,因为它使用了style的width样式进行修改宽度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值