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