如何让我的树面板识别所有子节点?

时间:2013-08-22 16:00:33

标签: extjs nodes extjs3 treepanel

我正在尝试遍历树面板中的所有节点。问题是如果我在调用node.eachChild()之前没有展开节点,节点会认为它没有任何子节点。 (即使它确实如此)

如果查看我的jsfiddle,单击Traverse按钮而不展开任何节点,它将只显示根节点+其三个子节点。现在,如果您返回并展开所有子节点,请关闭它们,然后再次单击该按钮,它会显示所有节点。

http://jsfiddle.net/sQ97F/

如何让我的树面板加载所有子节点,以便在onReady之后立即通过所有子节点?

注意:我也不希望在onLoad()中扩展节点,因此无法使用tree.getRootNode()。expand()不是一个好的解决方案。

1 个答案:

答案 0 :(得分:1)

loader:new Ext.tree.TreeLoader({preloadChildren:true})添加到TreePanel配置应该可以。

new Ext.tree.TreePanel({
    renderTo: Ext.getBody(),

    loader: new Ext.tree.TreeLoader({ preloadChildren: true }), //New Config


    id: 'mainTree',
    title: 'Packages',
    useArrows: true,
    autoScroll: true,
    containerScroll: true,
    frame: true,
    rootVisible: false,
    root: rootNode,
    buttons: [traverse]
});