我不能建议你真正解决这个问题,但我决定写下我如何解释这个问题。简短的回答是:setFrozenColumns方法在计算top
冻结 div 的位置时存在错误。应该改进代码。
有两个 div:一个用于冻结的标头(具有 classes 的 div frozen-div ui-jqgrid-hdiv
),另一个用于冻结的主体(具有 classes 的 div frozen-bdiv ui-jqgrid-bdiv
)。如果您从官方 jqGrid 演示页面打开“Frozen Cols.Group Header(new)”/“Frozen column with group header”演示并检查top
不同 Web 浏览器中的属性值,您会发现在某些浏览器中的值top
应该增加或减少到 1px 以获得正确的视图。
例如,在 Firefox 16 中,潜水具有top: 24px;
并且top: 70px;
看起来一切正常。
在 IE9 中具有相同的值,但要正确查看网格,必须将值更改为top: 25px;
和top: 71px;
top: 24px;
以同样的方式,在 Chrome 22 中具有相同的值top: 70px;
。要解决此问题,可以将值更改为top: 23px;
和top: 69px;
您可以使用 Chrome 的开发者工具(IE 也一样)来验证更改top
属性是否可以解决问题:
更改后,演示的外观至少在 100% 时是完美的,但如果您将缩放更改为 200%,您会看到原始值top: 24px;
并且top: 70px;
更好。
我想问题的真正解决并不容易。它在网格的每一行冻结部分和非冻结部分的每一行上设置高度属性的方向。在答案中,您会找到方向的第一步。缺点是编辑后需要额外的代码来重新计算行的正确高度。