ExtJS4在商店负载上触发doLayout

时间:2012-01-19 09:02:32

标签: extjs4

我有一个定义了store: cdStore的网格。使用绑定到网格数据的表单编辑网格的记录。更新记录时,我希望刷新的记录显示在网格中。 目前我有

handler : function() {
        areaForm.getForm().submit({
            params: { action: "update" }
            });
        cdStore.loadPage(cdStore.currentPage);
        areaGrid.doLayout();
        }

似乎这有时会失败并且较旧的数据仍会显示在网格中 - 也许在页面完全加载之前调用doLayout()。

我可以以某种方式在loadPage上触发doLayout吗?

1 个答案:

答案 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()进入回调会产生正确的行为。