我有panel
动态我可以添加为网格,图表等项目。
其中任何一个“Widgets
”(网格,图表等)都有store
。
我的
panel
有一个“refresh tool
”onRefreshClick
我要重新加载“小工具”store
。
在我的主控制器中,我有:
onRefreshClick: function (tool) {
console.log('refresh widget store');
var me = this,
panel = tool.up('panel');
// here I want to access the store of the child item.
// So I can do:
/*
widgetStore.load();
*/
},
我不知道它的小部件是网格,图表,数据视图等?所以我只需要获得子组件的存储。
关于如何实现这一目标的任何线索?
答案 0 :(得分:1)
Ext.each(panel.query(), function(widget){
if(!Ext.isEmpty(widget.getStore()) widget.getStore().load();
})
答案 1 :(得分:0)
我认为你不能使用ComponentQuery来检索商店,所以我会做类似的事情:
for (var i = 0; i < panel.items.items.length; i++) {
try {
store = panel.items.items[i].getStore();
if (store != null) break;
} catch (err) {
//the component you looped through does not have a store...
}
}
if (store != null)
store.load();
不漂亮,但应该有效。现在,如果有时你的组件是嵌套的,也许你可以将它重构为一个递归函数(一个自己调用的函数)