如何在不使用弃用的jqGrid updateColumns方法的情况下修复column-header-width和column-body-width之间的同步问题?

时间:2013-08-12 16:00:33

标签: jqgrid width sync columnheader

目前我正在努力恢复已保存的网格首选项/配置。这或多或少都工作得很漂亮,直到我们到达执行列重映射的最后一步执行,$ grid.jqGrid(“remapColumns”,perm,true,true);会发生什么事情是重新排序的列标题宽度与相应的列体宽度不同步。

此重映射可以正确显示新订单中的列标题名称和列体数据,并且可以根据用户首选项显示。

然而,令人不安的是以下内容。共有三列:(1)名称(宽度:200),(2)Id(宽度:70)和(3)警报(宽度:60)

如上所述,列标题和correspeond列体数据的实际重新排序是正常的。

这样原来的顺序:

                          Name       |  Id   | Alert
                          x          |  1    | a,c,d
                          y          |  2    | 
                          z          |  3    | c

正确地重新映射到新订单,但是(出于可视化示例的目的),如下所示,列标题宽度与column-body-widths不同步

                          Id         |  Name  | Alert
                          1  | x              | a,c,d
                          2  | y              | 
                          3  | z              | c

每列包含正确的数据,但现在关于列宽会发生以下情况。

Id列标题现在有一个column-header-width = 200(宽度不正确),而且 Id column-body-width = 70(正确的宽度)

名称列标题现在有一个column-header-width = 70(不正确的宽度)和 名称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。

在这一点上,我真的非常需要一个有效的解决方案和明确的指导来将这一点扼杀在萌芽状态。如果有任何进一步的澄清或代码是必要的,请告诉我。

0 个答案:

没有答案