2012-08-17 2 views
1

Я настраиваю реализацию перетаскивания с помощью treepanels, где я хочу, чтобы все узлы присоединялись к узлу, который я создал под корнем. Я пытаюсь перетащить один узел из одной панели дерева в другую определенным образом. Я могу переместить элемент, но столкнулся с трудностями при удалении его с другой стороны.extjs 4 удаление узла из treepanel, дающий ошибку в пользовательских перетаскивания

Вот мой код, это в моем TreePanel:

viewConfig:{ 
plugins:{ 
    ptype:'treeviewdragdrop', 
    DDgroup:'treeDD' 
}, 

listeners:{ 
    beforedrop: function(node, data, dropRec, dropPosition){ 
     if(dropRec.parentNode.data.text == "Root"){ 
     console.log('dropping on top level'); 
     this.up('panel').getStore().getRootNode().getChildAt(0).insertChild(0, data.records[0].data); 
     //the below line seems to be causing the error, how should I be removing? 
     choicesTree.getRootNode().getChildAt(0).removeChild(data.records[0]); 
     //choicesTree is previously defined 
     return false; 
     } 
} 

Это удается удалить элемент из первого TreePanel, но немедленно дает следующее сообщение об ошибке:

item is null 
fly(item.firstChild).highlight(me.repairHighlightColor, { 
+0

Из документации: Возвращение ложной к этому событию сигнализирует, что падение жест был недействительным, и если сопротивление прокси будет анимировать назад к той точке, с которой сопротивление начал. Возврат 0 К этому событию сигнализирует о том, что операция передачи данных не должна выполняться, но этот жест был действительным и что операция восстановления не должна выполняться. Любое другое возвращаемое значение продолжается с помощью операции передачи данных. – Bbb

+0

Если я вернусь 0, я не получу ошибку. Тем не менее, возврат 0 не работает, как говорят документы, он передает данные, и в некотором роде я не хочу ... – Bbb

+0

Каков наилучший способ обойти это, поскольку похоже, что документы неверны? – Bbb

ответ

1

Возвращения ложного вызывает проблему в коде. return 0 также не работает, как описывают документы. Код не работает из-за ошибок в версии 4.07 extjs, код работает, как ожидалось, в версии 4.1.

Из документации: Возврат false к этому событию сигнализирует о том, что жест перетаскивания недействителен, и если прокси-сервер переадресации будет возвращаться назад к точке, из которой началось перетаскивание. Возврат 0 К этому событию сигнализирует о том, что операция передачи данных не должна выполняться, но этот жест был действительным и что операция восстановления не должна выполняться. Любое другое возвращаемое значение продолжается с помощью операции передачи данных.

выше поведение от Docs отличается от того, что происходит