teacher taekwondo student programa monsters code dojo

student - dojo taekwondo



Expandir todos los nodos en dijit.Tree (3)

Sí, autoExpand = true (como un parámetro de inicialización para el Árbol).

Si necesita expandir / colapsar dinámicamente, Tree solía tener un método para eso, pero lo saqué. Sin embargo, puede copiarlo desde: http://bugs.dojotoolkit.org/changeset/20529 .

¿Hay una buena manera de expandir / cerrar todos los nodos expandibles en un dijit.Tree ?

Para aquellos que buscan una respuesta, pon esto en tu código de inicialización:

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); } });

Al menos, eso funciona para mí. Y puede hacer lo mismo con collapseAll() donde solo necesita cambiar _this._expandNode(node); con _this._collapseNode(node);


Para colapsar todos los nodos ... (recuerde NO colapsar el nodo raíz cuando no se muestre (me gusta que se muestren varios elementos para mis árboles))

_collapseAllTreeNodeContainers: function(){ var _tree = _this; function collapse(node) { // never collapse root node, otherwise hides whole tree ! if ( _tree.showRoot == false && node != _tree.rootNode ) { _tree._collapseNode(node); } var childBranches = dojo.filter(node.getChildren() || [], function(node) { return node.isExpandable; }); var def = new dojo.Deferred(); defs = dojo.map(childBranches, collapse); } return collapse( _tree.rootNode); }