有時候我們在程序中,需要把一棵TreePanel的元素拖放到另外一棵TreePanel中,如果是在同一棵樹中拖動時設置組件的enableDD參數為true,而現在需要在不同給的書之間拖動元素,這個時候就可以設置組件的enableDrag和enableDrop參數,詳細示例如下:
一、編寫JS代碼: JS代碼Ext.onReady(function(){ var tree1 = new Ext.tree.TreePanel({ el: 'tree1', //這裡設置enableDrag為true表示可以從這裡拖動元素到別處 enableDrag:true, loader: new Ext.tree.TreeLoader({dataUrl: 'treeData1.txt'}) }); var tree2 = new Ext.tree.TreePanel({ el: 'tree2', //這裡設置enableDrop為true表示可以在這棵樹中放置拖動過來的元素 enableDrop:true, loader: new Ext.tree.TreeLoader({dataUrl: 'treeData2.txt'}) }); var root1 = new Ext.tree.AsyncTreeNode({text:'跟節點'}); var root2 = new Ext.tree.AsyncTreeNode({text:'圖書'}); tree1.setRootNode(root1); tree2.setRootNode(root2); tree1.render(); tree2.render(); });二、HTML代碼如下: HTML代碼 <div id="tree1"></div>
treeData1.txt:
[ {text:'非葉子結點'}, {text:'葉子結點',leaf:true} ]
treeData2.txt:
[ {text:'計算機',children:[ {text:'Java',children:[ {text:'Java核心技術',leaf:true}, {text:'Thinking in Java',leaf:true} ]}, {text:'算法導論',leaf:true} ]}, {text:'音樂',children:[ {text:'樂理基礎',leaf:true}, {text:'卡爾卡西古典吉他教程',leaf:true} ]} ]四、程序效果如下圖所示: