2011-09-03 73 views
1

我正在与网格树拖ñ滴。我能够通过从网格中拖动它来将新节点添加到树的根,但是我不知道如何将子节点添加到节点,我将它徘徊在?我花了2天的DIS但没有luck.below是我的代码:extjs 4网格树拖拽

Ext.define('Overdrive.view.ui.MyViewport', { 
     extend: 'Ext.container.Viewport', 
     initComponent: function() { 
      var me = this; 
      me.items = [{ 
       xtype: 'panel', 
       height: 600, 
       layout: { 
        align: 'stretch', 
        type: 'hbox' 
       }, 
       title: 'PARENT', 
       items: [{ 
        xtype: 'treepanel', 
        border: '', 
        id: 'treepanel', 
        collapseDirection: 'left', 
        collapsible: true, 
        title: 'Items', 
        titleCollapse: true, 
        store: 'Test', 
        flex: 1, 
        viewConfig: { 
         listeners: { 
          render: function (tree) { 
           var dropTarget = new Ext.dd.DropTarget(tree.el, { 
            ddGroup: 'gridtotree', 
            copy: false, 

            notifyDrop: function (dragSource, event, data) { 
             var idFrom = data.records[0].data.name; 
             var node = Ext.getCmp('treepanel').getRootNode(); //working 
             node.appendChild({ 
              'text': idFrom, 
              'children': [] 
             }); 


            } 
           }); 
          } 
         } 
        } 
       }, { 
        xtype: 'panel', 
        height: 596, 
        flex: 3, 
        items: [{ 
         xtype: 'panel', 
         height: 285, 
         layout: { 
          type: 'anchor' 
         } 
        }, { 
         xtype: 'gridpanel', 
         id: 'itemtypegrid', 
         title: 'Item Type', 
         store: 'GridTest', 
         enableDragDrop: true, 
         ddText: 'Shift Row', 
         columns: [{ 
          xtype: 'gridcolumn', 
          width: 100, 
          dataIndex: 'name', 
          text: 'Name' 
         }], 
         viewConfig: { 
          plugins: [ 
          Ext.create('Ext.grid.plugin.DragDrop', { 
           ddGroup: 'gridtotree', 
           enableDrop: true 
          })] 
         } 
        }] 
       }] 
      }]; 
      me.callParent(arguments); 
     } 

回答

0

赶上树节点可以将此处理程序添加到Tree.Panel - > ViewConfig - >听众:

itemmouseenter: function (view, model, htmlItem, index, e) 
{ 
console.log(model); 
}, 

您可以保存该值并在另一个处理程序中使用 - notifyDrop