Работа с иерархией
Доброго времени суток, форумчане! Помогите плиз, разобраться с Kendo treeView, уже неделю бьюсь, весь инет просмотрел, но решения так и не найдено...
Суть вопроса: 1.Есть дерево var $tv = $('#' + treeviewId).kendoTreeView({ checkboxes: { checkChildren: true }, check: function (e) { getNodes(e.node); onCheck(); }, dataBound: function (e) { $tv.expand(".k-item"); }, dataSource: dataSource, dataTextField: "Title", dataValueField: "Id", }).data("kendoTreeView") 2.Есть <input type="text" id="InputForIds"> 3.Есть <textarea type="text" id="ForTextOfSelectedNodes"></textarea> |
Задача 1: айдишники выбранных записей складываются в input, а их текс складывается в textarea
|
Главное не только лейбл нода, но и путь до него (родителей)
|
Делаю это так:
function getNodes(node) { //var ids = []; var texts = []; var item = $tv.dataItem(node); $('#' + idInputId).val(item.Id); //ids.unshift(item.Id); texts.unshift(item.Title); getParentsNode(node, texts); var res = $('#' + titleInputId).val(); $('#' + titleInputId).val(res + '\n' + texts.join('\\')); }; function getParentsNode(node, texts) { var parentItem = $tv.dataItem($tv.parent(node)); if (parentItem != undefined) { //ids.unshift(parentItem.Id) texts.unshift(parentItem.Title) getParentsNode($tv.parent(node), texts); } }; |
function checkedNodeIds(nodes, checkedNodes) { for (var i = 0; i < nodes.length; i++) { if (nodes[i].checked) { checkedNodes.push(nodes[i].id); } if (nodes[i].hasChildren) { checkedNodeIds(nodes[i].children.view(), checkedNodes); } } } // show checked node IDs on datasource change function onCheck() { var checkedNodes = []; checkedNodeIds($tv.dataSource.view(), checkedNodes); if (checkedNodes.length > 0) { $('#' + idInputId).val(checkedNodes); } else { $('#' + idInputId).val(''); $('#' + titleInputId).val(''); } } |
Нужный текст добавляется в textarea, но если снять галочку то текст не убирается, как поступить?
|
Очень прошу помощи, СОС!!!
|
AlexTrader,
неплохо бы сделать нормальную заготовку. Чтобы можно было открыть и посмотреть. Например, в jsfiddle (поскольку редактировать понадобится). Там всё настроить, библиотеки подключить (по возможности несжатую версию, чтобы дебаггером легко было зайти). Ты пойми - настраивать самостоятельно всю эту кухню никто не будет. |
Alexandroppolus,
Спасибо большое за подсказку, вот http://jsfiddle.net/NZq4A/81/ |
http://jsfiddle.net/NZq4A/83/
немного обновил |
Alexandroppolus,
Если галочка (checkbox) отмечен то айдишники в input пытаюсь сложить, а text в textarea, если галочка снята то убрать эту запись из полей |
Но что то не работает...
|
Гуру JS есть какие мысли?
|
Часовой пояс GMT +3, время: 20:02. |