【问题标题】:How to MASK the Extjs Grid while setting the record data and unmask after set?如何在设置记录数据时屏蔽 Extjs 网格并在设置后取消屏蔽?
【发布时间】:2013-04-17 08:30:35
【问题描述】:

我在一个有 5 列的网格内一次显示 1500 到 2000 条记录。工具栏上有一个组合框。当会有组合更改时,我需要更新 2 列数据。为此,我正在阅读商店并设置每条记录的值(2 列)。为 2 列设置的任何值都来自另一个 JsonStore。

由于有超过 1000 条记录,它需要一些时间来更新 2 列数据。现在我试图在组合更改和 unmsak() 设置所有记录后屏蔽 Grid。

如何在设置所有记录值后取消屏蔽网格?

提前致谢!!!!

【问题讨论】:

标签: extjs grid extjs4 extjs4.1


【解决方案1】:

您可以使用 setLoading() 方法:

grid.setLoading(true); // <-- show default load mask to grid
grid.setLoading('some text'); // <-- show load mask with your text
grid.setLoading(false); // <-- hide load mask

【讨论】:

  • updateRecords:function(combo, newValue, oldValue, columnId,statId){ if(oldValue!=undefined){ grid.setLoading('some text'); alert("要设置所有记录"); var cindex = combo.getValue(); var column = Ext.getCmp(columnId); grid.getStore().each(function(record, index, count) { var recordDataObject = record.get(statId); record.set(columnId, recordDataObject[cindex]); }); } grid.setLoading(false); }
  • 这工作正常,但是当我删除警报时它根本不起作用......意味着不显示掩码和取消掩码
  • @aswininayak 尝试:if(index &gt;= grid.getStore().getCount()) grid.setLoading(false); 在循环中。或者在 jsfiddle 中显示你的代码。
  • 非常感谢 Vlad 的及时回复和帮助!!
  • 如果您在重新配置网格后期待加载掩码,则有一个 bug in ExtJS 4.2。此答案可用作解决方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-27
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多