0

我想动态更改我的商店。我有 extJs 树面板,作为 window.widget 的项目。我想动态更改此面板的存储。我的逻辑如下:aJax 请求被发送到我的控制器并且控制器返回 jsonObject。我不会将控制器返回的这个 jsonObject 设置为树面板的新存储,并且只刷新树面板。这是我到目前为止所做的,但动态改变是行不通的。请记住,我用于存储的 json 对象已创建并存在于内存中。一切正常,直到新商店出现并且树没有以我尝试的方式进入商店。

我的店铺:

var store = Ext.create('Ext.data.TreeStore', {
    root: {
        id: 'rootNode',
        expanded: true,
        children: childrenParam
    }
});

和我的树形面板:

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 对象很好,但更改存储无法正常工作。

提前感谢您的帮助!

4

2 回答 2

4

希望这可以帮助:

   treePanel.reconfigure(myNewStore, newStoreCols);

然后你必须调用这个代码:

    myNewStore.setRootNode(myNewStore.getRootNode());
于 2013-10-28T11:58:35.010 回答
0

你也用Ext.getCmp('treepanelId').setStore(myNewStore);

于 2017-12-10T16:03:02.743 回答