2014-01-27 3 views
0

Я работаю с ExtJS 4.2 и имею две панели деревьев. Я также использую treeviewdragdrop, чтобы иметь возможность перетаскивать некоторые узлы из левого дерева вправо.Как обновить корневое имя дерева, не перезагружая его снова?

enter image description here

Теперь позвольте мне объяснить меня проблема.

Вы можете видеть, что AMAZONE является Service Alias и как только вы что-то изменить в этом текстовом поле, есть слушатель на blur обновить право дерева root text. Начиная с AMAZON теперь корень также AMAZON. Затем вы можете перетаскивать элементы слева направо, как на картинке (Yhoo, dbTask).

Это когда я попадаю в беду. Когда я возвращаюсь и меняю SERVICE ALIAS, он меняет имя, но узлы исчезают, так как я должен снова перезагрузить корневой узел, чтобы увидеть обновленный корневой текст. Есть ли способ обновить представление, что фактически обновляет все измененные. Это то, что у меня есть сейчас.

Это код

listners: 
{ 
    blur: function() 
    { 
     var root_node = right_tree.getRootNode(); 
     root_node.data.text = new_alias_name; 
     right_tree.store.load(); // or reload() 
    } 
} 

Я знаю, что я могу сохранить упал узел в переменную и как только я перезагрузить дерево, я могу назначить тех, как дети. Но что-то говорит мне, что должен быть более простой способ. Thnaks;)

ответ

2

Использование:

root_node.set('text', new_alias_name');

и удалить вызов для загрузки.

+0

Спасибо, я знал, что должно быть что-то простое. Самое забавное, что я не могу найти эту функцию в списке методов 'treepanel' – Brian