1

我有一个带有 2 个冻结列的 jqgrid。如果我什么都不做,《冰雪奇缘》可以正常工作。在我隐藏/显示另一列(非冻结列)后,冻结不起作用。

我使用免费的 jqGrid 版本 4.14.0

我不知道会发生什么。

谁能帮我!提前致谢..

4

1 回答 1

1

如果您直接使用低级方法showCol, hideCol,showHideCol那么您应该从两种解决方案中选择哪一种在您的情况下提供最佳性能。

列的显示/隐藏相对较慢,因为需要查看网格的所有行display,列标题(包括过滤器工具栏),并且相应单元格上的内联 css 样式会更改(属性应设置为nonenone值应为删除)。之后,网格的大小和高度也可以更改。如果网格有冻结列,那么在冻结潜水中也应该这样做。此外,应重新计算冻结潜水的宽度和高度,并且也应重新计算冻结列的每一行的高度。

因此,有两种选择:

  1. showCol通过调用,隐藏/显示您需要的所有列,hideCol然后showHideColjqGridResetFrozenHeights网格上触发事件以强制重新计算冻结潜水的所有宽度/高度属性
  2. 通过调用 销毁冻结列,通过调用,destroyFrozenColumns应用隐藏/显示列,并通过调用showCol再次重新创建冻结列。hideColshowHideColsetFrozenColumns

我建议您进行一些测试以选择上述两种方法中的哪一种可以在您的应用程序中提供最佳性能。

于 2017-03-21T09:35:43.447 回答