Динамическая загрузка в дерево
Здравствуйте!
Сильно не пинайте, я ещё только начинаю изучение 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, время: 05:13. |