如何在不重新加载root的情况下更新treepanel的根名称?

时间:2014-01-27 23:57:38

标签: extjs extjs4 extjs4.1 extjs4.2 treepanel

我正在使用ExtJS 4.2并拥有两个树状图。我也使用treeviewdragdrop将一些节点从左侧树拖到右侧。

enter image description here

现在让我解释一下我遇到的问题。

您可以看到AMAZONEService Alias,只要您在该文本字段中更改某些内容,blur上就会有一个监听器来更新右侧树root text。从现在的AMAZON开始,根也是AMAZON。然后你可以像我在图片中那样从左到右拖动项目(Yhoo,dbTask)。

这是我遇到麻烦的时候。当我返回并更改SERVICE ALIAS时,它会更改名称,但节点会消失,因为我必须再次重新加载根节点才能查看更新的根文本。有没有办法可以更新视图,实际上更新所做的任何更改。这就是我现在拥有的。

这是代码

listners:
{
    blur: function()
    {
        var root_node = right_tree.getRootNode();
        root_node.data.text = new_alias_name;
        right_tree.store.load(); // or reload()
    }
}

我知道我可以将丢弃的节点保存到变量中,一旦我重新加载树,我就可以将它们分配为子节点。但有些东西告诉我应该有更简单的方法。 Thnaks;)

1 个答案:

答案 0 :(得分:2)

使用:

root_node.set('text', new_alias_name');

删除要加载的调用。