Я рендеринг дерева, используя массив Jason, который я получаю со страницы JSP.Таким образом, дерево имеет корневой узел и 3 узла, и каждый узел имеет более 5 дочерних элементов, а некоторые дочерние элементы имеют одинаковый идентификатор и одинаковый текст.Он отображается правильно и не отображает никаких проблем.
Я пытаюсь заставить пользователя выбирать дочерние узлы только одного типа (один из 3 узлов).если пользователь выбирает какой-либо узел, который не является братом уже существующего узла, тогда мне просто нужно отменить проверку уже проверенных узлов.Это звучит довольно просто, и я кодировал это.Я в основном сравнил родительские узлы (node.parentNode.id) проверенного узла с уже проверенными узлами (tree.getCheckedNodes ())
проблема в том, что когда я выбираю дочерние узлы с одинаковым идентификатором и отправляю текстлогика не работает, и они говорят, что у них один и тот же parentNode.id, даже если у них разные parentNode.id.Проверяет ли панель дерева наличие дублирующих элементов и присваивает их одному и тому же родительскому узлу во время загрузки?что здесь происходит и как это починить любые идеи.спасибо.
Ext.onReady(function(){
var tree = new Ext.tree.TreePanel({
id: 'deficiencyTree',
renderTo: 'MyTable',
title: 'Deficiencies',
height: 'auto',
width: 525,
useArrows: true,
autoScroll: true,
animate: true,
enableDD: true,
containerScroll: true,
rootVisible: false,
frame: false,
root:{nodeType: 'async'},
dataUrl: 'jsonFile.jsp',
listeners: {
'checkchange': function (node, checked) {
if (checked) {
selNodes = tree.getChecked();
alert(selNodes);
Ext.each(selNodes, function (nodes) {
alert("id values for node and nodes "+node.parentNode.id+" "+nodes.parentNode.id);
if (nodes.parentNode.id != node.parentNode.id)
{
nodes.getUI().toggleCheck();
}
});
}
list.length = 0;
iii = 0;
selNodess = tree.getChecked();
Ext.each(selNodess, function (nodes) {
list[iii] = nodes.id;
iii++;
});
}
}
});
tree.getRootNode().expand(false);
});