在ExtJS 4.2中 我有一个带有远程加载记录的网格。我在网格中选择一行并在数据库中更新。我正在更新数据库中的记录并使用store.load()重新加载存储。发生这种情况后,我可以在调试器中暂停并检查存储,它确实具有正确的值。仍然选择相同的记录,但是以下代码:
var selectedRecords = grid.getSelectionModel().getSelection();
未获取更新的记录。如果我取消选择并重新选择它,则记录会刷新,但如果没有这样做,它仍然具有旧值。有没有办法刷新它。
我看到很多关于在加载时让行保持选中状态的帖子,但这对我来说不是问题,它似乎是自己做的。
答案 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()