Я обрабатываю дерево, используя массив Jason, который я получаю со страницы jsp. Таким образом, дерево имеет корневой узел и 3 узла, и каждый узел имеет более 5 детей, а некоторые из них имеют одинаковый идентификатор и один и тот же текст. Он отображается правильно и никаких проблем не отображается.ExtJS Tree same parentNode
Я пытаюсь заставить пользователя выбирать дочерние узлы только одного типа (одного из трех узлов). если пользователь выбирает любой узел, который не является дочерним узлом уже существующего узла, тогда мне нужно просто проверить уже проверенные узлы. Это звучит довольно просто, и я его закодировал. Я в основном сравнивал родительские узлы (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);
});
Да, мне нужен этот идентификатор позже, чтобы сохранить мои выборки в базе данных. поэтому я попытался поместить новый атрибут с именем ID2, по идентификатору и тексту для каждого узла, но когда я попытался получить к нему доступ (node.ID2, например node.id, node.text), он говорит undefined. любая идея, как получить доступ к новому атрибуту? Благодарю. –