JQGrid header 和列未对齐

JQGrid header and column not aligned

我正在使用 jqgrid,在特定流程中,headers 和列变得不对齐。我在 Whosebug 上发现了类似的问题,但解决方案对我没有用。作为记录,我使用 Oleg 在 this question 中提供的一段代码,根据列的内容动态设置了列的宽度。然后我使用 jqGrid 的 setColWidth 函数来设置网格宽度。我正在调试我面临的这个问题,我不得不查看 jqgrid.setcolwidth.js 那里有一个名为 dragEnd() 的函数。当我进一步研究这个函数时,我发现第一个错位发生在下面的语句中

!0===d.forceFit?(e=
this.headers[c+d.nv].newWidth||this.headers[c+d.nv].width,this.headers[c+d.nv].width=e,this.headers[c+d.nv].el.style.width=e+"px",this.cols[c+d.nv].style.width=e+"px",0<this.footers.length&&(this.footers[c+d.nv].style.width=e+"px"),d.colModel[c+d.nv].width=e):(d.tblwidth=this.newWidth||d.tblwidth,b("table:first",this.bDiv).css("width",d.tblwidth+"px"),b("table:first",this.hDiv).css("width",d.tblwidth+"px"),this.hDiv.scrollLeft=this.bDiv.scrollLeft,d.footerrow&&(b("table:first",this.sDiv).css("width",
d.tblwidth+"px"),this.sDiv.scrollLeft=this.bDiv.scrollLeft));

此代码段位于 jquery.jqgrid.min.js 中,并且所有列的对齐都没有失真,但第 11 列。在这 2 个函数调用我的 js 文件 returns 之后,该列的 header 的宽度不同于列的 td 的宽度(.jqgfirstrow 和 .jqgrow)

我不知道该怎么做,并且在试图找到问题的根本原因时不知所措。如果你们中的任何人能阐明为什么它可能表现得像这样,或者 jqgrid 如何准确设置其列和 headers 的宽度,那将是非常好的。

注意:这里forceFit的值为false。

提前致谢。

我想您使用了一些旧版本的 jqGrid。我建议你升级到最新版本 free jqGrid(它是 4.12.1 版本,但我计划在接下来的几天发布 4.13.0)。 Free jqGrid 是我从 2014 年底开始开发的 jqGrid 的分支。

我在免费的 jqGrid 中包含了许多错误修复并实现了新功能。方法 setColWidth 包含在主要代码中。此外还有许多新功能,例如 auto-adjustment of column width based on the column content, labelClasses, labelAlign (see the demo) and many many other features described in the readme to every published version and someone in the wiki.

我建议您使用免费的 jqGrid。您可以从 CDN 加载它,例如通过 here 描述的使用 URL。我希望问题会自动消失。