дерево extJs: получить узел из имени - PullRequest
1 голос
/ 30 декабря 2011

Есть ли способ проверить / снять галочку с узла в дереве extJS, если все, что у нас есть, это просто имя узла (с именами родителей до корня).Я использую ExtJS 3.3.0, не могу найти какой-либо метод в документации API

1 Ответ

2 голосов
/ 03 января 2012

Во-первых: я думаю, что имя не совпадает с идентификатором узла, в противном случае вы используете treePanel.getNodeById() Ссылка API

У вас есть путь к узлу, заданный node.getPath()

Вам просто нужно позвонить

treePanel.expandPath(path, null, function(bSuccess, oLastNode){ oLastNode.select() });
treePanel.expandPath(path, null, function(bSuccess, oLastNode){ oLastNode.unselect() });

API -Link

с именем, которое вы имеете в виду текстовое свойство узла, который делаетне совпадает с идентификатором узла или любым другим доступным атрибутом на узле:

  • получить ваш корневой узел и массив всех дочерних узлов из этого
  • взять ваш путь и получить первый дочерний узелпосле корня
  • итерация по массиву до тех пор, пока вы не найдете соответствие на узле. текст
  • извлечение дочернего массива из этого узла
  • извлечение следующего потомка из вашего пути
  • перебирайте массив, пока не найдете совпадение на node.text
  • и т. Д.

и, наконец, вы достигнете своего целевого узла.Знайте, что вам просто нужно позвонить

Обратите внимание, что я не проверял поведение выбора / отмены выбора, но он должен проверять / снимать флажок комбо.для свертывания используйте либо toggle(), если вы просто хотите изменить состояние, либо collapse() / expand()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...