Доступ к листьям TreeNode в Ext JS Tree - PullRequest
0 голосов
/ 20 октября 2010

Я использую библиотеку Ext JS для создания своего приложения.У меня есть панель дерева, которая имеет узлы дерева и дочерние узлы дерева.У этих узлов дерева есть листья, к которым я хотел бы иметь доступ.Я искал некоторое время, но не могу найти функцию свойства для доступа к листам: (

Некоторый код здесь:

var i;
var j = 0;
var selectedLayers = new Array();
                                while(layerRoot.lastChild.hasChildNodes()){
                                    alert(layerRoot.lastChild.firstChild);
for(i = 0; i < layerRoot.lastChild.firstChild.childNodes.length; i++){
                                        if(layerRoot.lastChild.firstChild.childNodes[i].isSelected()){
                                            selectedLayers[j] = layerRoot.lastChild.firstChild.childNodes[i].attributes.text;
                                            alert(selectedLayers[j]);
j++;
} 
}

                                    layerRoot.lastChild.removeChild(layerRoot.lastChild.firstChild);
}
layerRoot.removeChild(layerRoot.lastChild);

Я пробовал layerRoot.lastChild.firstChild.childNodes, но это не работает, так как дочерние элементы layerRoot.lastChild.firstChild являются листьями :(. Ваше время и отзывы очень ценятся.

elshae

Ответы [ 2 ]

1 голос
/ 20 октября 2010

Я только начал играть с TreePanel, думаю, вам нужно написать свою функцию для обхода дерева и проверить, являются ли узлы листьями, используя свойство leaf. Если у вас есть конкретная функция, которую вы хотите выполнить на листьях, вы можете использовать cascade() для автоматического обхода дерева, проверяя свойство leaf по ходу и выполняя ваш код.

0 голосов
/ 21 октября 2010

Вы должны проверить TreePanel, я думаю, что TreeGrid может быть устаревшим в последней версии ext (3.3). Он имеет множество функций get / set / traversal, проверьте это в API здесь: http://dev.sencha.com/deploy/dev/docs/?class=Ext.tree.TreePanel

...