extjs treepanel: expand() и expandChildNodes()

Если я напишу:

rootNode.expand()

Я могу получить доступ только к дочерним узлам этого корневого узла, но не могу получить доступ к узлам внуков этого корневого узла. Я должен написать:

rootNode.expandChildNodes()

для того, чтобы достичь этого.

Есть ли другой способ получить внуки или дополнительные дочерние узлы, даже если дерево свернуто? кроме использования node.eachChild() функционировать? Я старался:

rootChildNode.firstChild

но это не работает

3 ответа

Решение

ExtJS 4x имеет expandAll() метод на компоненте панели дерева. Это расширит каждый узел рекурсивно.

Если вы хотите расшириться до неполного уровня, то в этом случае:

           expandTo:function(level){

                    treePanel.collapseAll();
                    treePanel.getRootNode().cascadeBy(function (node) {

                          if (node.getDepth() < level) { node.expand(); }
                          if (node.getDepth() == level) { return false; }
                     });
         }

Еще один способ добраться до потомков - использовать node.expand(true)где узел является корневым узлом. Точно так же вы можете взять любой узел в дереве и развернуть все его дочерние узлы, используя тот же код. Обычное использование для выбранного узла.

Другие вопросы по тегам