我有一个网格,其中大约 500 行,使用远程数据。网格是在 MVC 助手中声明的,而不是在 JS 中声明的,但我认为这对于这个问题并不重要。
我添加了一个函数来更新网格中的一些值,效果很好:
//I have already tried using grid.dataSource.data() instead of view(), but it doesn't help)
var dataItems = grid.dataSource.view();
for (i = 0; i < dataItems.length; i++) {
var dataItem = dataItems[i];
dataItem.Amount = dataItem.OriginalAmount;
dataItem.IsIncluded = true;
dataItem.dirty = true;
}
grid.dataSource.fetch(); //This shows the dataSource's changed values in the grid
(我故意不使用 dataItem.set() 方法,因为它反复触发 dataSource.change 事件,如果在多行上运行,这会使 js 函数爆炸。
所以上面的函数工作正常,大约半秒更新500行,可以接受。
当我想保存(同步)更改时,问题就来了。在调用控制器操作进行更新之前,它需要一个时间,接近一分钟(如网格定义中为更新指定的那样)。
它确实可以保存/更新,但它需要更快。
有没有一种方法不需要一分钟就能完成控制器保存/更新操作?或者有没有更好的方法来做到这一点?