Когда я вызываю itemClick() в Ext.tree.Panel Я бы хотел отобразить некоторые произвольные узлы.динамическое изменение рендеринга узлов в дереве
Позволяет сказать, когда я нажимаю на узле Я хочу, чтобы выделить все его дети желтый:
Simples.
Я знаю, как визуализировать нажав узел. Это просто:
itemclick: function(dv, record, item, index, e) {
//HTMLElement
item.style.color="RED";
Деталь просто HTMLElement, который может получить его стиль изменился.
Мне также удалось выяснить, что я могу также получить доступ к данным из магазина, как так:
itemclick: function(dv, record, item, index, e) {
//View --> store
dv.store.data.items[4]
Элементов данных являются только Ext.data.Model объектов я думаю,. Я не могу видеть крюк, где я могу добавить стиль к элементу объектов однако :(
Я также посмотрел на делать запрос «вверх» и вызов findChild (..) на панели дерева:
itemclick: function(dv, record, item, index, e) {
//Ext.data.NodeInterface
var panel = dv.up('panel');
var rn = panel.getRootNode();
var r = rn.findChild("name", "MYNODE");
r.data.cls = 'my_class';
Существует cls 'hook', где я могу установить значения классов. Однако рендеринг не кажется. Также метод findChild возвращает только одно значение, и нет findChildren (что действительно озадачивает. Почему ExtJS ommit что-то вроде этого)
Это событие callb Метод ack действительно меня озадачивает. Мне как-то нужна ссылка между элементом HTMLElement и элементами данных или хранилищем. Все эти подходы, похоже, приводят к тупику для меня.
UPDATE: В третьем примере я могу вызвать panel.getView(). Refresh(); и это обновит пользовательский интерфейс. Так что теперь единственная проблема, у меня есть это найти метод, как GetChildren (..)