EXTJS:treepanel以编程方式移动分支

时间:2010-07-20 14:28:07

标签: extjs

我有一棵树,用户可以拖放分支。

现在这一切都运行良好,但我需要能够以编程方式移动分支。

我需要模拟剪切和粘贴(我将让用户使用按钮而不是 Ctrl - X V )。< / p>

有没有人知道我应该从哪里开始?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

这是一个可以同时用于多个节点的剪切和粘贴。此版本还将隐藏任何已被“剪切”的节点,并且在粘贴之前不会再次显示它们。在粘贴期间,它将仅使用所选的第一个节点,所有其他节点将被忽略。

var Children = new Array();

function CutChildren(){
    Children = tree.getSelectionModel().getSelectedNodes();
    var limit = Children.length;
    for (count =0; count < limit; count++){
        Children[count].getUI().hide();
    }

}

function PasteChildren(){
    var selected = new Array();
    selected = tree.getSelectionModel().getSelectedNodes();
    var limit = Children.length;
    for (count =0; count < limit; count++){
        selected[0].appendChild(Children[count]);
        Children[count].getUI().show();
        if (count > 100){
        break;}
    }

}

答案 2 :(得分:0)

我从未玩过那种方法所以我不能真正给你一个完整的解决方案,但是TreePanel类有一个带有以下参数的movenode方法... Tree tree,Node node,Node oldParent,Node newParent,Number索引

还有与此方法相关的事件。希望这会有所帮助。

编辑 - 我读得太快了,那些都是事件。我认为你可以手动执行此操作的唯一方法是使用appendChild和removeChild方法。