我们如何在extjs树中获取select节点的索引?

时间:2012-03-08 08:41:12

标签: javascript html css treeview extjs4

在我的页面上,我有2棵树。 页面上有表格。页面上显示一棵树,表单中显示另一棵树。 我创建了如下树:

var myTree1 = Ext.create('Ext.tree.Panel', {
    store: store,  //where store is hardcoded json tree data
    ....
});

类似地,myTree2用不同的商店声明。它显示在表格内。 当我在myTree2上的任何节点上选择并单击“创建”按钮时,我必须能够在myTree1中以相同的索引添加新的叶节点。

我需要的帮助是:
1.如何获取所选节点的索引 2.如何转到myTree1中的索引,应该等于所选索引myTree2 3.如何在特定索引处添加叶节点。

1 个答案:

答案 0 :(得分:2)

供参考:
Ext JS 4 TreePanel documentation
Ext JS 4 NodeInterface documentation

  1. select事件提供索引和记录。如果您需要对它进行一般访问,myTree1.getSelectionModel().getSelection()将返回一组记录,然后您可以检查商店以获取索引。

  2. 我假设您要比较两棵树上的选定记录。给出#1中的样本,试试这个:

    var tree1rec = myTree1.getSelectionModel().getSelection[0],
        tree2rec = myTree2.getSelectionModel().getSelection[0];
    // Perform comparison logic here
    // Note that if you're using two different stores, you can't
    // just do an equality test. You'll probably have to compare
    // individual store values.
    
  3. 相对于树上的现有节点插入节点。因此,如果您有按钮点击事件:

    function onButtonClick(button, eOpts) {
        var rec = myTree1.getSelectionModel().getSelection[0];
        if (rec) {
            var childNode = rec.createNode(/* some object here */);
            rec.appendChild(childNode);
        }
    }
    
  4. 细节将根据您的实际数据而有所不同,但这是一般模式。