ExtJS4:如何使用相同的参数重新加载网格

ExtJS4:如何使用相同的参数重新加载网格,extjs,extjs4,Extjs,Extjs4,我想知道为什么ExtJS开发人员决定删除extjs4storeapi中的reload()方法。我认为这是一个错误的决定 这是我的问题。我使用以下代码初始化网格的存储: store.load({ params: { paramName: dynamicParameter } }); 注意上面代码中的dynamicParameter变量 然后,如果我从网格中删除一些记录,我需要重新加载存储 问题是:重新加载存储的代码段不应该知道dynamicParameter值 删除记录

我想知道为什么ExtJS开发人员决定删除extjs4storeapi中的
reload()
方法。我认为这是一个错误的决定

这是我的问题。我使用以下代码初始化网格的存储:

store.load({
   params: {
       paramName: dynamicParameter
   }
});
注意上面代码中的
dynamicParameter
变量

然后,如果我从网格中删除一些记录,我需要重新加载存储

问题是:重新加载存储的代码段不应该知道
dynamicParameter

删除记录的代码如下所示:

function deleteGridItems(grid, deleteUrl){
    // get selected rows
    var records = grid.getSelectionModel().getSelection();

    // ...... (codes to send request for deletion is ignored) ......

    if(success){
        grid.getStore().reload();
    }
}
不幸的是,上面的
grid.getStore().reload()
将是一个错误,因为在ExtJS4中,
reload()
函数不再存在

那么,如何使用相同的参数重新加载存储

谢谢。

如果我没有弄错的话,load()函数现在的作用与以前的重载()完全相同。试试看

您需要设置代理额外参数,而不是每次加载时指定它()


参见此

还请注意,Ext JS在加载之前似乎没有检查存储是否已经加载数据。我不确定这是为什么,但可以通过覆盖
存储
树存储
中的load()方法来修复

load: function(options) {
    // Loading quickly will cause data in the panel to break
    if (!this.isLoading()) {
        this.callParent(arguments);
    }
},
我没有遇到过网格问题,但如果您快速按下刷新按钮,则有时会出现错误,树结构会中断:

Uncaught TypeError: Cannot read property 'internalId' of undefined

我尝试了
load()
函数。但是它没有提交
动态参数
。您可以在每次调用load时传递参数,或者它不是一个选项?感谢@innerJL提供的链接。但我对这个解决方案有点不满意。这是因为我必须在每次加载之前设置
store.proxy.extraParams={paramName:dynamicParameter}
。这是因为外部参数不是固定的,而是动态的。我仍然认为ExtJS开发人员在extjs4中删除
reload()
方法的决定是一个非常糟糕的决定。