free-jqgrid:隐藏/显示列影响冻结列?

问题描述:

我有一个jqgrid与2冻结列。如果我什么都没有,冻结的工作很好。 当我隐藏/显示另一列(不冻结的列)冻结不起作用。free-jqgrid:隐藏/显示列影响冻结列?

我使用的jqGrid免费版本4.14.0

我不知道发生什么。

任何人都可以帮助我!在此先感谢..

+0

你能更准确地描述问题吗?你如何隐藏/显示列?你使用'columnChooser'还是直接调用'showCol','hideCol','showHideCol'?你的意思是“冻结不起作用”?什么“不工作”?冻结柱的高度/宽度是否保持不变?最好提供可用于重现问题的演示。 – Oleg

+0

@ Oleg,感谢您的快速回复,我使用“hideCol”。在隐藏列之后,在未锁定之前冻结的列以及它们的高度/宽度未更改 – Tommy1209

如果您直接使用底层方法showCol,hideCol,showHideCol,那么您应该选择自己从两种解决方法中选择哪一种方法提供最佳性能。

显示/列的隐藏是比较慢的,因为所有行网格的,列标题(包括过滤器工具栏)需要通过中查找并在相应的单元格内联CSS样式有所改变(display属性应该是设置为nonenone的值应该被移除)。之后,网格的高度和高度也可以改变。如果电网有冻结的柱子,那么在冻结的潜水中也应该这样做。此外,应重新计算冷冻潜水的宽度和高度,并应重新计算每一排冷冻柱的高度。

这样一个有两个选择:

  1. 隐藏/显示它您需要的showColhideColshowHideCol然后调用网格触发jqGridResetFrozenHeights事件迫使所有宽度/高度属性的重新计算所有列冷冻潜水
  2. destroyFrozenColumns调用破坏冻结的列,应用隐藏/调用的showColhideColshowHideCol出列和重新冻结的列曾经的setFrozenColumns呼叫的更多。

我建议你做一些测试选择,从上面两种方式中选择哪一种在你的应用中提供最好的性能。

+0

谢谢@Oleg,我尝试了解决方案2,它工作正常! – Tommy1209

+0

@ Tommy1209:不客气! – Oleg