Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2015, 12:33
Аспирант
Отправить личное сообщение для XAPuTOH Посмотреть профиль Найти все сообщения от XAPuTOH
 
Регистрация: 17.12.2012
Сообщений: 63

treeviewdragdrop добавление в пустой элемент дерева.
Всем привет.

Есть такая задачка - сформировать дерево объектов путем перетаскивания новых объектов из другого дерева.

И столкнулся с такой проблемкой. Родной плагин treeviewdragdrop не дает добавлять новые элементы в узел дерева с leaf = true.

Т.е. элемент можно добавить только в узел который уже имеет дочерние узлы.

Наверное какая то логика в этом есть. Но не в моем случае. У меня изначально дерева вообще нету и задача быстренько накидать элементов в изначально пустую панель.

Как я понял из сенчевского форума - это фича а не баг и не отключается.

Кто нибудь сталкивался с такой проблемкой? Как решить?
Ответить с цитированием
  #2 (permalink)  
Старый 17.09.2015, 09:14
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

У дерева всегда есть корневой узел, даже если он не объявлен явно. Даже в пустой панели.
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2015, 17:14
Профессор
Отправить личное сообщение для siber-biber Посмотреть профиль Найти все сообщения от siber-biber
 
Регистрация: 07.08.2013
Сообщений: 214

вот такую штуку я делал на работе:
plugins     : {
                    ptype               : 'treeviewdragdrop',
                    allowContainerDrops : true,
                    dropZone            : {
                        // we want to always append child node to the hovered one
                        // this behavior isn't supported out of the box by the plugin
                        // so we override a template "onNodeDrop" method
                        onNodeDrop : function (node) {
                            this.valid              = true;
                            this.currentPosition    = 'append';
                            this.overRecord         = this.view.getRecord(node);
                            // call overridden method
                            return this.self.prototype.onNodeDrop.apply(this, arguments);
                        }
                    }
                },

дальше поиграетесь и допилите до нужного я думаю
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2015, 23:07
Аспирант
Отправить личное сообщение для AirGraph Посмотреть профиль Найти все сообщения от AirGraph
 
Регистрация: 20.04.2015
Сообщений: 39

Действительно, если node.leaf === true, то к нему ничего уже добавить нельзя именно потому, что он не узел, сиречь не node, а именно leaf. novikov справедливо отметил, что у любого дерева есть root, который можно скрыть и не показывать в панели, но в который и можно добавить все что угодно. Рекомендую посмотреть события beforedrop и drop и описать их во viewConfig->listeners.
Ответить с цитированием
  #5 (permalink)  
Старый 30.09.2015, 09:59
Аспирант
Отправить личное сообщение для XAPuTOH Посмотреть профиль Найти все сообщения от XAPuTOH
 
Регистрация: 17.12.2012
Сообщений: 63

Спасибо всем ответившим! Буду пробовать ваши советы.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Drag-n-Drop - перетянуть элемент Jugo ExtJS 1 10.08.2011 19:10
Как удалить элемент из дерева DOM dummer jQuery 13 16.01.2011 16:19