ExtJs - TreePanel的expandPath无法正常工作

时间:2012-08-31 09:19:07

标签: extjs tree extjs4.1 expand treepanel

My 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/

我尝试了什么:

  • 路径:/root => successtruenode代表node.data.id=""node.data.path=""

  • 路径:/root/ => successtruenode表示node.data.id=""node.data.path="/report_with_variables"(树中的第一个节点)和node.data.parentId= "root"

  • 路径:/root/subfolder3到路径:successfalsenode表示node.data.id=""node.data.path=""以及{{1是} node.getPath()

我对树的Json响应如下:

/root

2 个答案:

答案 0 :(得分:3)

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

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

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

    因此,您可以分析回调函数中发生的事情:

    • 如果成功为false且node为null,则路径为空

    • 如果成功为假,并且节点=根节点比路径在最开始时无效

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

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

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

    它应该有用

答案 1 :(得分:0)

我有同样的问题,在我的情况下,从未调用expandPath的回调。

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

这可能对您和/或其他人有所帮助。