如何检索treepanel的节点?

时间:2012-06-14 11:15:52

标签: javascript extjs tree extjs4 treepanel

我正在使用ExtJS 4。 我创建了一个树面板

var treeStore = Ext.create('Ext.data.TreeStore', {
        root: {
            text:'Reports',
            expanded: true,
            children: [
                {
                    id: 'operationalNode',
                    text: 'Operational',
                    children: [{ text: "report1", leaf: true }]
                },
                {
                    id: 'managementNode',
                    text: 'Management',
                    children: [{ text: "report2", leaf: true }]
                },
                {
                    id: 'inventoryNode',
                    text: 'Inventory'
                }
            ]
        }
    });
var treePanel = Ext.create('Ext.tree.TreePanel',{
    animate:true,
    layout:'fit',
    height:400,
    store:treeStore
    });

现在我想将'Operational'子项检索为

Ext.getCmp('operationalNode');

但它返回null。

为什么会这样?

如何检索该节点?

有没有办法按名称检索节点?

2 个答案:

答案 0 :(得分:2)

节点是具有节点接口的实际模型。所以你应该只使用treestore中的getNodeById

var node = treeStore.getNodeById('operationalNode')

您的数据在node.data中就像在任何其他模型中一样

答案 1 :(得分:0)

你需要这样的东西:

Ext.getCmp('id-of-the-view').getView().getSelectionModel().getSelection()[0];