extjs 4从treepanel中删除节点,在自定义拖放中给出错误

时间:2012-08-17 14:50:32

标签: extjs drag-and-drop treeview extjs4 treepanel

我正在使用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, {

1 个答案:

答案 0 :(得分:1)

返回false导致代码中出现问题。返回0也不像文档描述的那样工作。代码无法正常工作,因为版本4.0的extjs中的错误代码在版本4.1中的预期工作

从文档中:对此事件返回false表示放置手势无效,并且拖动代理将动画回到拖动开始的点。返回0此事件表示不应进行数据传输操作,但手势有效,并且不应进行修复操作。任何其他返回值将继续进行数据传输操作。

文档中的上述行为与发生的行为不同