javascript - JQGrid 标题和列未对齐

标签 javascript jquery jqgrid

我正在使用 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-adjustmentlabelClasseslabelAlign(请参阅 the demo)以及自述文件中描述的许多其他功能发布版本和 the wiki 中的某个人。

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

关于javascript - JQGrid 标题和列未对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35502465/

相关文章:

javascript - d3.js-为堆叠条形图中的一个条添加不同的颜色

javascript - Javascript 中 for...of 循环和执行上下文中的解构赋值

javascript - 在 THREE.js 中使用纹理

jquery - 使用 jquery 从文本框中清除旧值

javascript - 如何在没有任何单词的情况下连接多个单词,仅在自动完成中使用空格?

javascript - 传递动态参数以删除 JQGrid 中的 url 方法

javascript - 如何处理(好吧,模拟)触摸设备上的悬停行为?

javascript - 将 "this"传递给 jQuery 中的函数问题

jquery-ui - 加载一次 :true causing issues in paging for jqGrid

model-view-controller - jqGrid(MVC): wanting to not load grid on page load