【问题标题】:ExtJS4 trigger doLayout on store loadExtJS4 在商店加载时触发 doLayout
【发布时间】:2012-01-27 04:28:49
【问题描述】:

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

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

这似乎有时会失败,并且旧数据仍然显示在网格中 - 可能在页面完全加载之前调用了 doLayout()。

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

【问题讨论】:

    标签: extjs4


    【解决方案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() 放入回调会产生正确的行为。

    【讨论】:

    • 非常感谢您的回答。如果你能这么好,我会很感激一两行解释。
    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2012-05-31
    • 2014-04-16
    • 2013-04-20
    • 2021-05-05
    • 1970-01-01
    相关资源
    最近更新 更多