Событие проверки обмена на узле дерева с использованием его идентификатора в ExtJs 4.1
У меня есть TreePanel. Каждому узлу в дереве присвоен идентификатор. При нажатии кнопки я хочу запустить событие checkchange для узла 2.1 (как показано в дереве ниже). Как я могу запустить событие checkchange для узла, используя его идентификатор по нажатию кнопки.
1
1.2
1.3
1.4
2
2.1
2.2
3
Спасибо
1 ответ
Чтобы запустить обмен чеками, вам нужен узел и, если он проверен.
TreePanel
использует Ext.data.TreeStore
хранить информацию об узлах (она находится в store
имущество).
Этот TreeStore имеет getNodeById( id )
метод, который возвращает узел записи по id.
Если вы хотите получить узел из другого свойства, то вам нужно использовать tree
(Ext.data.Tree
) собственность от store
, который похож на менеджер узлов. Это имеет массив записей узла в nodeHash
имущество. Вам нужно перебрать этот массив и сравнить данное свойство вручную.
Полный код:
buttonClick: function(button, e, eOpts) {
var treepanel = button.up(...).down('treepanel');
var node = treepanel.getStore().getNodeById(yourIDHere);
// for custom property use this:
/*var nodeHash = treepanel.getStore().tree.nodeHash;
var node;
for (var x in nodeHash) {
if (nodeHash[x].get('customProperty') == customValue) {
node = nodeHash[x];
break;
}
} */
treepanel.fireEvent('checkchange', node, node.get('checked'));
}