XPages datagrid没有退出编辑模式

时间:2013-12-25 10:33:23

标签: datagrid dojo xpages

我使用dojo.grid.datagrid

如果DataGrid包含许多行(示例200)并且要滚动,则它无法从编辑模式单元格退出。知道问题是什么吗?

upd:或许有人知道如何在xPages中使用dgrid / gridx,因为我发现了下一个大错误 - 保存休息服务后的编码:(

2 个答案:

答案 0 :(得分:4)

我刚做了一些测试,我相信我看到了同样的事情。当我在网格中移动时,编辑和保存似乎很好。我可以根据需要向下滚动并保存更改。但是,当我向上滚动并将单元格置于编辑模式时,它不会保存更改 - 它会立即恢复为原始值。有时它只是让细胞处于编辑模式。

我同意这似乎是内存管理的一个问题。如果我将rowsPerPage设置为一个将所有行保留在内存中的数字,则会出现(测试非常有限)我可以向上和向下滚动并进行更改,并且它们都已保存。

我目前没有解决方案,但我建议代替一个完美的解决方案是找到一种方法将rowsPerPage设置为大于将在网格中显示的行数的数字。如果有太多的数据是可行的,那么我采取的方法是在网格上提供过滤以保持显示的最大行数低得多,然后设置的性能不会太高。 rowsPerPage到足够的数量。

如果我遇到更好的解决方案,我会回来发布。

答案 1 :(得分:0)

呀!我解决了! :) FileStore.js(extlib)中的错误。在onClientLoad上添加它。我改变了“!!错误代码”

restViewItemFileService._processResponse = function(requestObject, data) {
    this._items.splice(0, this._items.length); // !!error code -> this.close();
    this._start = requestObject.start;

    //TODO: clear identity?     
    dojo.forEach(data.items, function(entry, idx) {
        var item = {storeRef:this, attributes:entry};
        var id = item.attributes[this._identity]
                                 var pending = this._pendings[id]
                                                              if(pending) {
                                                                  for (var s in pending.modAttrs[s]) {
                                                                      this.item.attributes[s] = pending.modAttrs[s]
                                                                  }
                                                              }
        this._byIdentity[id] = item;
        this._items.push(item);
    }, this);

    this._topLevelEntries = data['@toplevelentries'];
    this.onData(requestObject, data);
    this._finishResponse(requestObject);
}