扩展dijit.Tree中的所有节点

pei*_*rix 4 dojo

是否有一种扩展/关闭所有可扩展节点的好方法dijit.Tree

对于那些寻找答案的人,请将其放入初始化代码中:

var treeControl = new dijit.Tree({
    model: treeModel,
    expandAll: function() {
        // summary:
        //     Expand all nodes in the tree
        // returns:
        //     Deferred that fires when all nodes have expanded

        var _this = this;

        function expand(node) {
            _this._expandNode(node);

            var childBranches = dojo.filter(node.getChildren() || [], function(node) {
                return node.isExpandable;
            });

            var def = new dojo.Deferred();
            defs = dojo.map(childBranches, expand);
        }
        return expand(this.rootNode);
    }
});
Run Code Online (Sandbox Code Playgroud)

至少,这对我有用.你也可以做同样的collapseAll(),你只需要切换_this._expandNode(node);_this._collapseNode(node);

Bil*_*ese 8

是的,autoExpand = true(作为树的初始化参数).

如果你需要动态展开/折叠,Tree过去常常有一个方法,但我把它拿出来了.但是,您可以从http://bugs.dojotoolkit.org/changeset/20529复制它 .