我正在使用treepanels设置自定义拖放实现,我希望所有节点都附加到我在根目录下创建的节点。我试图以某种方式将一个节点从一个树形板拖到另一个树形板上。我可以移动物品,但是从另一侧移除时会遇到麻烦。
这是我的代码,这是在我的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;
}
}
这设法从第一个树状图片中删除了该项目,但是立即给出了以下错误:
item is null
fly(item.firstChild).highlight(me.repairHighlightColor, {
答案 0 :(得分:1)
返回false导致代码中出现问题。返回0也不像文档描述的那样工作。代码无法正常工作,因为版本4.0的extjs中的错误代码在版本4.1中的预期工作
从文档中:对此事件返回false表示放置手势无效,并且拖动代理将动画回到拖动开始的点。返回0此事件表示不应进行数据传输操作,但手势有效,并且不应进行修复操作。任何其他返回值将继续进行数据传输操作。
文档中的上述行为与发生的行为不同