Дерево extjs 4 выбирает определенный узел по его внутреннему идентификатору (не по индексу записи) - PullRequest
5 голосов
/ 16 июня 2011

Я пытаюсь синхронизировать просмотр данных (окно проводника) с деревом (деревом каталогов). Когда я нажимаю на элемент в окне просмотра данных, я бы хотел, чтобы тот же узел был выбран в дереве

Проблема в том, что при использовании tree.getSelectionModel().select(index) не позволяет мне выбирать узел по его внутреннему идентификатору (идентификатору, который я указал в своем хранилище деревьев), но только по индексу записи ... Так что я просто не могу синхронизировать оба представления ... Было бы решение для expandPath (), но мое хранилище деревьев снабжается реляционной базой данных (id, name, parent_id и т. Д.), Поэтому поиск полного пути является (или может быть) тяжелой нагрузкой для сервера (я хотел бы избежать указания пути ...).

По сути, я хотел бы иметь возможность сказать "развернуть узел, в котором" id = "(или любой другой ключ / значение древовидного хранилища).

Возможно ли это? Есть ли обходной путь?

Спасибо, что читаете меня!

Ответы [ 2 ]

9 голосов
/ 18 июля 2011

Функция tree.getSelectionModel (). Select (record) может принимать экземпляр записи вместо индекса. Я бы сделал что-то вроде этого:

var record = tree.getRootNode().findChild('id_name','record_id',true);
tree.getSelectionModel().select(record);

для получения дополнительной информации о функции findChild, посмотрите документы NodeInterface здесь: http://docs.sencha.com/ext-js/4-0/#/api/Ext.data.NodeInterface-method-findChild

0 голосов
/ 20 августа 2013

вы также можете использовать selecteditemtree.data.id для этого.

...