store.load后的Extjs网格选择包含不正确的数据

时间:2017-02-08 18:59:08

标签: javascript extjs extjs4

在ExtJS 4.2中 我有一个带有远程加载记录的网格。我在网格中选择一行并在数据库中更新。我正在更新数据库中的记录并使用store.load()重新加载存储。发生这种情况后,我可以在调试器中暂停并检查存储,它确实具有正确的值。仍然选择相同的记录,但是以下代码:

var selectedRecords = grid.getSelectionModel().getSelection();

未获取更新的记录。如果我取消选择并重新选择它,则记录会刷新,但如果没有这样做,它仍然具有旧值。有没有办法刷新它。

我看到很多关于在加载时让行保持选中状态的帖子,但这对我来说不是问题,它似乎是自己做的。

2 个答案:

答案 0 :(得分:3)

这似乎是选择模型的基础错误。选择'由于Ext.selection.Model扩展了Ext.util.Observable,并且仅在与网格选择相关的某些事件发生时才会更新混合集合。如果您不想取消选择然后再手动选择,甚至在商店加载上注册回调,请尝试以下方法作为解决方法,

var selectionArr = grid.selModel.selected; selectionArr.replace(selectionArr.keys[0],grid.getStore().getById(selectionArr.keys[0]));

现在试试,

var selectedRecords = grid.selModel.getSelection();

应该可以正常工作。

答案 1 :(得分:0)

尝试在更新值后刷新网格存储。

Ext.getCmp('myGridID').getView().refresh()