我有一个定义了store: cdStore
的网格。使用绑定到网格数据的表单编辑网格的记录。更新记录时,我希望刷新的记录显示在网格中。
目前我有
handler : function() {
areaForm.getForm().submit({
params: { action: "update" }
});
cdStore.loadPage(cdStore.currentPage);
areaGrid.doLayout();
}
似乎这有时会失败并且较旧的数据仍会显示在网格中 - 也许在页面完全加载之前调用doLayout()。
我可以以某种方式在loadPage上触发doLayout吗?
答案 0 :(得分:1)
// ...
cdStore.load({
callback: function(){areaGrid.doLayout();},
page: cdStore.currentPage
});
如果您愿意,我会很感激一两行的解释
你说“doLayout()在页面完全加载之前被调用”你是对的。因此,在加载数据后必须调用doLayout
。一种方法是使用load方法。您可以将选项数组传递给此方法:
store.load({
page: 2,
limit: 50,
// and
callback: function(){ /*do something*/ }
});
在加载数据后,将完全调用作为回调传递的函数。因此doLayout()
进入回调会产生正确的行为。