我想动态更改我的商店。我有extJs树面板,作为window.widget的项目。我想动态更改此面板的存储。我的逻辑如下: aJax请求被发送到我的控制器并且cotroller返回jsonObject。我不会将我的控制器返回的jsonObject设置为我的树面板的新存储,并仅刷新树面板。这是我到目前为止所做的,但动态变化不起作用。 请记住,我用于存储的json对象已创建并存在于内存中。一切正常,直到新商店出现,树不能以我尝试的方式获得商店。
我的商店:
var store = Ext.create('Ext.data.TreeStore', {
root: {
id: 'rootNode',
expanded: true,
children: childrenParam
}
});
和我的treepanel:
xtype: 'treepanel',
region: 'west',
id: 'navigation',
title: 'Tree of builds',
width: "30%",
height: "100%",
layout: 'fit',
rootVisible: false,
store: store,
split: true,
autoScroll: true,
collapsible: true,
floatable: false
...
我试过的是:
var myPanel = Ext.getCmp('navigation');
myPanel.store.tree.root.childNodes = result;
其中result是从我的控制器返回的json对象。这个json对象很好,但是商店的更改工作不正常。
提前感谢您的帮助!
答案 0 :(得分:4)
希望这会有所帮助:
treePanel.reconfigure(myNewStore, newStoreCols);
然后你必须调用这段代码:
myNewStore.setRootNode(myNewStore.getRootNode());
答案 1 :(得分:0)
你也可以使用Ext.getCmp('treepanelId').setStore(myNewStore);