【问题标题】:ExtJs how to change store of treepanel dynamicallyExtJs如何动态更改树形面板的存储
【发布时间】:2017-12-11 00:03:02
【问题描述】:

我想动态更改我的商店。我有 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;

其中结果是从我的控制器返回的 json 对象。这个 json 对象很好,但是改变 store 不能正常工作。

提前感谢您的帮助!

【问题讨论】:

    标签: json extjs


    【解决方案1】:

    希望这会有所帮助:

       treePanel.reconfigure(myNewStore, newStoreCols);
    

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

        myNewStore.setRootNode(myNewStore.getRootNode());
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多