Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.03.2017, 11:29
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Работа с иерархией
Доброго времени суток, форумчане! Помогите плиз, разобраться с 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>
Ответить с цитированием
  #2 (permalink)  
Старый 27.03.2017, 11:31
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Задача 1: айдишники выбранных записей складываются в input, а их текс складывается в textarea
Ответить с цитированием
  #3 (permalink)  
Старый 27.03.2017, 11:37
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Главное не только лейбл нода, но и путь до него (родителей)
Ответить с цитированием
  #4 (permalink)  
Старый 27.03.2017, 11:39
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Делаю это так:
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);
                }
            };
Ответить с цитированием
  #5 (permalink)  
Старый 27.03.2017, 11:41
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

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('');
                }
            }
Ответить с цитированием
  #6 (permalink)  
Старый 27.03.2017, 11:43
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Нужный текст добавляется в textarea, но если снять галочку то текст не убирается, как поступить?
Ответить с цитированием
  #7 (permalink)  
Старый 27.03.2017, 12:21
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Очень прошу помощи, СОС!!!
Ответить с цитированием
  #8 (permalink)  
Старый 27.03.2017, 13:35
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

AlexTrader,
неплохо бы сделать нормальную заготовку. Чтобы можно было открыть и посмотреть. Например, в jsfiddle (поскольку редактировать понадобится).
Там всё настроить, библиотеки подключить (по возможности несжатую версию, чтобы дебаггером легко было зайти).

Ты пойми - настраивать самостоятельно всю эту кухню никто не будет.
Ответить с цитированием
  #9 (permalink)  
Старый 27.03.2017, 14:16
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Alexandroppolus,
Спасибо большое за подсказку, вот http://jsfiddle.net/NZq4A/81/
Ответить с цитированием
  #10 (permalink)  
Старый 27.03.2017, 14:18
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

http://jsfiddle.net/NZq4A/83/
немного обновил
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дизайнер, верстальщик со знанием Adobe Flash и Adobe Photoshop, УДАЛЕННАЯ РАБОТА Анна NikitaOnline Работа 0 21.03.2016 18:57
Вакансия: Программист IOS, работа в офисе,г.Ростов-на-Дону Анна NikitaOnline Работа 0 21.03.2016 18:45
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06