treeviewdragdrop добавление в пустой элемент дерева.
Всем привет.
Есть такая задачка - сформировать дерево объектов путем перетаскивания новых объектов из другого дерева. И столкнулся с такой проблемкой. Родной плагин treeviewdragdrop не дает добавлять новые элементы в узел дерева с leaf = true. Т.е. элемент можно добавить только в узел который уже имеет дочерние узлы. Наверное какая то логика в этом есть. Но не в моем случае. У меня изначально дерева вообще нету и задача быстренько накидать элементов в изначально пустую панель. Как я понял из сенчевского форума - это фича а не баг и не отключается. Кто нибудь сталкивался с такой проблемкой? Как решить? |
У дерева всегда есть корневой узел, даже если он не объявлен явно. Даже в пустой панели.
|
вот такую штуку я делал на работе:
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); } } }, дальше поиграетесь и допилите до нужного я думаю ;) |
Действительно, если node.leaf === true, то к нему ничего уже добавить нельзя именно потому, что он не узел, сиречь не node, а именно leaf. novikov справедливо отметил, что у любого дерева есть root, который можно скрыть и не показывать в панели, но в который и можно добавить все что угодно. Рекомендую посмотреть события beforedrop и drop и описать их во viewConfig->listeners.
|
Спасибо всем ответившим! Буду пробовать ваши советы.
|
Часовой пояс GMT +3, время: 19:03. |