2015-06-22 85 views
0

我有一个简单的网格,没有与任何数据库表的直接连接。只有几天山中的人和列中的人(比如31 x 20)。在初始化过程中,我从一些表中读取数据,计算并将它们写入这个网格。然后,我必须计算很多指标,通过原始材料,专栏和其中的一部分进行一些计算。只是统计。ExtJS和简单的网格面板

从网格单元中读取没有问题,这非常快。将数据写入单元格时遇到问题。例如。填写这个网格的过程如下:

days = Ext.getStore('StoreDays').getRange(); 
employees = Ext.getStore('StoreTeam').getRange(); 
Ext.each(days, function (day) { 
    Ext.each(persons, function (guy) { 
     tmp = day.get('from'); 
     day.set('start_' + persons.data.prs_numer, start); 

     ... and 4 additional SET operations to grid cells 
    }); 
}); 

而且这个程序工作超过3分钟!!!我不知道为什么以及如何编写好的代码来正常写入这些数据。如此善良,并提示我如何! 此外,我无法刷新例如每一个原始的原始设置后,我想要的。 你会如此友善地提醒我吗?

回答

1

单元更新可能意味着网格需要自行刷新,因此它可以实现31x20x5(31行,20列,每个单元5次)!

相反,这样做:

store.suspendEvents(); 
// Do your update 
store.resumeEvents(); 
grid.getView().refresh(); 
+0

不,不幸的是它是不是我的问题的解决方案。时间还是一样。 而且,这个网格是使用celledit插件准备的,以便用户更正某些单元格。还有一些倾听'beforedit'和'afxtit'事件的听众。我在这个evets中设置了断点,并且我知道这个事件在程序创建我的两个循环时没有使用。 当我使用调试器时,我看到浏览器“挂起”这3分钟。 – Krzys77

+0

然后我建议你发布一个工作测试用例,否则我不知道你在做什么。 –

+0

感谢您的信息,我可以发布它,但这个应用程序是biger系统的一部分,所以它会是没有环境和数据库运行的问题。我可以尝试使用有问题的网格来准备这部分应用程序,并让它在一些静态数据上运行。对? – Krzys77