extjs 4 从树面板中删除节点,在自定义拖放中出错



我正在使用树状面板设置自定义拖放实现,我希望所有节点都附加到我在根目录下创建的节点。我正在尝试以某种方式将一个节点从一个树形面板拖到另一个树形面板。我可以将物品移过去,但在从另一侧取下它时遇到了麻烦。

这是我的代码,它在我的树面板中:

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, {

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

来自文档:向此事件返回 false 表示拖放手势无效,并且如果拖动代理将以动画形式返回到拖动开始的点。向此事件返回 0 表示不应执行数据传输操作,但手势有效,并且不应执行修复操作。任何其他返回值将继续执行数据传输操作。

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

最新更新