如果 jqgrid 滚动到最右边的位置,则列分隔线超出 sunc。
要重现,使 jqgrid 比浏览器窗口更宽或减小浏览器窗口宽度,以便出现水平滚动条并水平滚动到最右边的位置。标题和列分隔符垂直线在不同的位置。
如何解决这个问题?
如果 jqgrid 滚动到最右边的位置,则列分隔线超出 sunc。
要重现,使 jqgrid 比浏览器窗口更宽或减小浏览器窗口宽度,以便出现水平滚动条并水平滚动到最右边的位置。标题和列分隔符垂直线在不同的位置。
如何解决这个问题?
你有很长的代码。有人调试您的代码不是stackoverflow的目标。你能准备一个重现问题的小演示吗?
我调试了代码,可以看到网格在初始加载时没有水平条。免费 jqGrid 包含检测数据加载后网格是否包含水平条。它将padding-right
hbox (hdiv
具有 class 的子级的 div ui-jqgrid-hbox
)设置为滚动条的宽度:(bDiv.offsetWidth - bDiv.clientWidth
参见代码行和这一行)。
如果单击网格的重新加载网格按钮,则滚动条的问题将得到修复。所以我假设你在加载数据后对页面进行了一些更改。结果,网格得到水平滚动条。jqGrid 没有检测到更改,因此存在问题。
您可以做的是在对包含水平滚动条的页面进行不清楚的更改后fixScrollOffsetAndhBoxPadding
手动调用方法。例如,您可能只是更改了网格的宽度(可能是)。$grid.jqGrid('setGridWidth', $('#grid1container').width(), false);
你可以做的只是包括电话
$grid[0].fixScrollOffsetAndhBoxPadding();
将创建网格的滚动条之后的某处。是公共的fixScrollOffsetAndhBoxPadding
,它是网格的 DOM 的成员(见行)。上面的代码应该可以工作。
如果我$("#grid")[0].fixScrollOffsetAndhBoxPadding();
在调试器的控制台中执行该行,我会看到问题将得到解决。