我正在使用 jqgrid,在特定流程中,标题和列变得不对齐。我在 stackoverflow 上发现了类似的问题,但解决方案对我没有用。作为记录,我使用 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 列。从这两个函数调用返回到我的 js 文件后,该列标题的宽度与列的 td 的宽度不同(.jqgfirstrow 和 .jqgrow)
我不确定该怎么做,并且不知所措地试图找到问题的根本原因。如果你们中的任何人能阐明为什么它可能会这样,或者 jqgrid 如何准确设置其列和标题的宽度,那将是非常好的。
注意:forceFit 的值在那里是假的。
提前致谢。
最佳答案
我假设您使用了一些旧版本的 jqGrid。我建议你升级到最新版本 free jqGrid(它是 4.12.1 版本,但我计划在接下来的几天发布 4.13.0)。 Free jqGrid 是我从 2014 年底开始开发的 jqGrid 的分支。
我在免费的 jqGrid 中包含了许多错误修复并实现了新功能。方法 setColWidth
包含在主要代码中。此外,还有许多新功能,例如基于列内容的列宽 auto-adjustment、labelClasses
、labelAlign
(请参阅 the demo)以及自述文件中描述的许多其他功能发布版本和 the wiki 中的某个人。
我建议您使用免费的 jqGrid。您可以从 CDN 加载它,例如通过 here 描述的使用 URL。我希望问题会自动消失。
关于javascript - JQGrid 标题和列未对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35502465/