Динамическая загрузка в дерево
Здравствуйте!
Сильно не пинайте, я ещё только начинаю изучение ExtJs. Хочу сделать динамическую загрузку дерева. В примерах вроде понятно, добавляем TreeStore, ему proxy с url-ем, а с сервера отдаём данные по запросам вида url?node=id И тут у меня возникает ряд вопросов. 1. Данные беру из БД, данные в БД могут меняться. Хорошо, при изменении я через сокет как-нибудь сообщу клиенту об обновлении данных, и даже передам id конкретно тех записей, которые изменены. А может ли TreeStore перезагрузить и обновить на TreePanel только те узлы, о изменении которых я сообщаю? Или нужно всё дерево перезагружать? 2. Как настроить формат запроса вместо url?node=id чтобы был например url/node/id Пока я не разобрался, как работать с TreeStore, пишу без него, обрабатываю события на узлах, подгружаю данные через сокет и обновляю узлы напрямую через NodeInterface. Но ведь это не правильно, идеологически неверно и просто мне не нравится. |
Цитата:
var store = treePanel.getStore(); var node = store.getNodeById( Id_of_serverside_changed_node ); if (node != null) { store.load({ node: node }); } |
Обнаружилась ещё одна проблема.
При одновременном (асинхронном) вызове метода store.load({ node: node });из двух разных событий, в дерево от узла node загружаются сразу два экземпляра одного и того же поддерева. При чём это только в визуальном отображении, в самом store дерево остаётся корректным, однако лишний экземпляр поддерева в разметке оказывается "мёртвым" - не реагирует на события и не хочет удаляться. |
У меня были подобные проблемы, стал пользоваться dynatree. Документации много, пока что глюков не замечено.
|
Часовой пояс GMT +3, время: 02:31. |