目前我正在恢复保存的网格首选项/配置。这或多或少工作得很好,直到我们进入执行列重映射的最后一步, $grid.jqGrid("remapColumns", perm, true, true); 发生的情况是重新排序的列标题宽度与相应的列主体宽度不同步。
此重新映射确实以新顺序并根据用户偏好正确显示列标题名称和列主体数据。
然而,奇怪的是以下。共有三列:(1) Name (width: 200), (2) Id (width: 70), and (3) Alert (width: 60)
如前所述,列标题和相应列正文数据的实际重新排序很好。
这样原来的顺序:
Name | Id | Alert
x | 1 | a,c,d
y | 2 |
z | 3 | c
正确地重新映射到新顺序,但是(出于视觉示例的目的)如下所示,列标题宽度与列主体宽度不同步
Id | Name | Alert
1 | x | a,c,d
2 | y |
3 | z | c
每列都包含正确的数据,但现在关于列宽发生了以下情况。
Id column-header 现在有一个 column-header-width = 200(不正确的宽度),并且 Id column-body-width = 70(正确的宽度)
名称 column-header 现在具有 column-header-width = 70(不正确的宽度)和 Name column-body-width = 200(正确的宽度)。
警报列不受影响,并且列标题(宽度 = 60)和列体(宽度 = 60)的宽度都正确。
在解决这个问题的过程中,我认为 updateColumns 方法是同步列标题宽度与相应列主体宽度不同步的一个不错的选择。如文档中所述,(http://www.trirand.com/jqgridwiki/doku.php?id=wiki%3amethods)
updateColumns - 这将标题的宽度与数据同步。与表格拖放一起使用时很有用。应该以这种方式使用此方法 - 示例:var mygrid=jQuery("#grid_id")[0]; mygrid.updateColumns();
但是,在尝试使用 updateColumns() 失败并进行进一步挖掘之后,事实证明,从 jqGrid 3.8 开始,该方法已被弃用/从代码中删除。我们目前使用的是 jqGrid 4.4/4.5 版。
(首选)在同步列标题宽度和列正文宽度方面,我该如何使用当前版本的软件来解决这个问题?
和/或我在哪里可以找到 jqGrid 源代码 3.7,以便我可以看看这个方法并可能使用它?虽然我找到了 jqGrid 的早期版本,但我一直无法找到 <= 3.7 的版本。
在这一点上,我确实非常需要一个有效的解决方案和明确的指导来将其扼杀在萌芽状态。如果需要任何进一步的说明或代码,请告诉我。