如何设置树存储和树节点不关闭/合拢

时间:2018-07-19 15:23:04

标签: javascript extjs extjs6

我正在为extJS应用程序使用一个treepanel。

这是我的代码:

{
    xtype: 'treepanel',
    useArrows: true,
    autoScroll: false,
    animate: true,
    animateShadow: true,
    enableDD: false,
    id: 'myTreePanel',
    rootVisible: false,
    store: Ext.create('Ext.data.TreeStore', {
        root: {
            expanded: true,
            children: [],
        }
    }),
}

现在,在单击某个按钮的一个ajax调用之后,我得到了响应。我正在粘贴得到的响应的样本值。现在在功能中,这就是我去商店的方式。

myTreeData = [{
        children: [],
        text: 'text1'
    },
    {
        children: [],
        text: 'text2'
    },
    {
        children: [{
            children: null,
            text: 'text31'
        }, {
            children: null,
            text: 'text32'
        }],
        text: 'text3'
    },
    {
        children: [],
        text: 'text4'
    },
    {
        children: [],
        text: 'text5'
    }
]


myFunction: function(me.response) {
    var myTreeData = response.myTreeData;
    for (var i = 0; i < myTreeData.length; i++) {
        myTreeData[i].expand = true;
        myTreeData[i].text = myTreeData[i].text;
        var myTreeDataChildren = myTreeData[i].children;
        if (myTreeDataChildren.length >= 1) {
            for (var j = 0; j < myTreeDataChildren.length; j++) {
                if (myTreeDataChildren[j].textValue == null) {
                    myTreeDataChildren[j].text = myTreeDataChildren[j].Display
                } else {
                    myTreeDataChildren[j].text = myTreeDataChildren[j].textValue
                }

                myTreeDataChildren[j].leaf = true;
            }
        }
    }
    var myTreePanel = Ext.getCmp('myTreePanel');
    var myTreePanelStore = myTreePanel.getStore();
    myTreePanelStore.loadData(myTreeData);
}

这里的商店设置完美,但是单击该节点后,我便可以打开子元素,但是当我再次单击该子元素时,它应该关闭/折叠,但这没有发生。

任何人都可以建议我以更好的方式加载商店,并且关闭和折叠应能按预期工作。

0 个答案:

没有答案