【问题标题】:ExtJS4: Columns hiding. Too slowExtJS4:列隐藏。太慢了
【发布时间】:2012-07-24 00:24:33
【问题描述】:

在不同的数据类型中,我需要从网格中隐藏一些列(不是一列)。 我正在使用column.hide() 方法,但它运行得太慢了。

如果我将隐藏属性设置为列,我不知道方法,这将刷新网格视图。

如果我这样做 grid.view.refresh() - 标题仍然存在。

设置hidden:true属性后如何刷新网格?

或者其他方式...

【问题讨论】:

  • 你能给出你创建网格的代码吗?
  • 标准创建。就像在 Sencha 文档中一样。我不想在创建网格时隐藏列。创建网格后,我可以单击一些按钮(有一些数据条件),网格将使用该条件从服务器加载自身。然后我想隐藏一些列。我想从按钮处理程序代码中隐藏一些列。
  • 可以试试这个问题上建议的答案吗? stackoverflow.com/questions/5680080/…

标签: javascript extjs


【解决方案1】:

我遇到了同样的问题。我需要确定列的可见性和大小。如果我使用标准方法,则需要 24 秒(约 120 列)。

我的解决方案:

var grid = ...;
for (var i = 0; i < grid.columns.length; i++) {
    var column = grid.columns[i];
    column.hidden = false // or true, instead column.setVisible(bool);
    column.width = 100 // instead column.setWidth(100);
}
grid.headerCt.updateLayout();

现在需要 114 毫秒而不是 24 秒。

【讨论】:

  • 小心,使用鼠标调整列大小时,此解决方案可能会导致伪影。另一种方式(有点慢~1sec) Ext.suspendLayouts(); for (var i ....) {...} Ext.resumeLayouts(true);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-19
  • 2013-03-10
  • 2014-06-07
  • 2016-05-31
  • 2011-07-07
  • 2015-08-23
相关资源
最近更新 更多