2

在工具栏上创建全选/取消全选时是否有人遇到性能问题并且更新非常慢。使用数据源 set/get 方法遍历网格中的 300 条记录大约需要 10 秒。

我使用的代码如下:


    var data = dataSource.view();
    for (var idx = 0, length = data.length; idx < length; idx++) {
        if (!data[idx].IsActive) data[idx].set("IsActive", true);
    }
    
有人遇到过这个问题吗?有没有办法提高性能?

谢谢。

4

2 回答 2

0

不是每次都计算数据的长度,而是像这样将长度存储在局部变量中

  var data = dataSource.view();
  var dataLength=data.length;
  for (var idx = 0, length = dataLength; idx < length; idx++) {
         data[idx].Active = true;
  }
  grid.refresh();
于 2014-02-13T13:17:10.880 回答
0

三个问题:

  1. 如果您要设置IsActivetrue,请不要花时间检查它是否已经存在true
  2. 它不是set直接分配值,set而是一个非常昂贵的操作,然后进行刷新以更新 UI。
  3. 您的计算机比我的要快得多,在我的情况下,300 个值需要更长的时间;-)

尝试做:

var data = dataSource.view();
for (var idx = 0, length = data.length; idx < length; idx++) {
    data[idx].Active = true;
}
grid.refresh();
于 2013-04-07T13:54:03.747 回答