0

我的 Treepanel 有 id 'treePanel' 并且工作得很好。

示例路径:

/subfolder3/abc

expandAll()使用树面板扩展所有内容但expandPath()不起作用。

现在,在某些事件之后,我想在我的树中扩展一条路径。但是我做不到。

到目前为止,我已经尝试过:

var oTreePanel = Ext.getCmp('treePanel');

oTreePanel.expandPath('/subfolder3/abc'); // or '/subfolder3' or '/root/subfolder3'

没有错误消息,但树中也没有变化。

该怎么办?

编辑

oTreePanel.selModel.getSelection()[0].getPath()/root/

我尝试了什么:

  • path: /root=> successis trueandnodenode.data.id=""andnode.data.path=""

  • path: /root/=> successis trueandnode表示node.data.id=""and node.data.path="/report_with_variables"(树中的第一个节点) andnode.data.parentId= "root"

  • path: /root/subfolder3to the path : successis falseand nodesay node.data.id=""and node.data.path=""isnode.getPath()/root

我对树的 Json 响应如下所示:

{"status":{"status":0,"msg":"Ok","protocolversion":"extjs.json"},"value":{"name":"","path":"\/","type":"folder","leaf":false,"children":[{"name":"report_with_variables","path":"\/report_with_variables","type":"report","leaf":true,"title":"Report ohne Variablen","description":null},{"name":"subfolder1","path":"\/subfolder1","type":"folder","leaf":false},{"name":"subfolder2","path":"\/subfolder2","type":"folder","leaf":false},{"name":"subfolder3","path":"\/subfolder3","type":"folder","leaf":false},{"name":"testreports","path":"\/testreports","type":"folder","leaf":false}]}}
4

2 回答 2

3

expandPath工作正常,尝试验证您尝试扩展的路径。默认情况下,路径在节点的模型idProperty字段上构建,它是id模型数据中的属性,可能与您在示例中尝试使用的不同。

  1. 验证路径和节点的 id
  2. 尝试以下列格式运行 expandPath:

    tree.expandPath(path, null, null, function(success, node) { //analyse method execution
    });

    所以你可以分析回调函数中发生了什么:

    • 如果成功为假且节点为空,则路径为空

    • 如果成功为假且节点=根节点,则路径一开始就无效

    • 如果成功为假且节点不是根,则路径部分无效

  3. 尝试使用getPath()方法获取树中某个节点的路径,然后使用获得的路径expandPath

    var n = node.getPath(); tree.expandPath(path);

    它应该工作

于 2012-08-31T10:25:51.030 回答
0

我遇到了同样的问题,在我的情况下,expandPath 的回调从未被调用过。

原因是树存储在调用 expandPath 方法时仍在加载先前的请求。在调用 expandPath 之前,确保您的 tree.store 没有加载。

也许这可以帮助您和/或其他人。

于 2013-01-17T17:24:50.800 回答