使用Ext JS技術拖動樹結點

2021-09-22 06:51:24 字數 819 閱讀 4744

在本文將介紹treepanel元件非常有意思的乙個功能:結點拖放。要使treepanel元件的結點可以拖放非常簡單,只需要將treepanel類的enabledd選項引數設為true即可。當然,要想實現更複雜的功能,還需要配合其他的引數和事件。

拖放結點包含了兩個動作,拖(drag)和放(drop)。拖很好理解,就是將結點拖起來,拖哪乙個結點的效果都是一樣的。不過放結點就比較複雜了。放結點可分為如下兩種情況:

下面的設定將treepanel元件設為結點可拖動狀態。

在瀏覽器位址列中輸入如下的

當顯示出樹形結點時,按上面的拖動方法來拖動結點,會出現如圖1、圖

2和圖3所示的拖動效果。

圖1【英語】結點將作為【計算機】的子結點

圖2  【英語】結點將作為【計算機】的兄弟結點,並移到【計算機】結點的前面(

above

拖放圖3  兩個葉子結點互動位置(

below

在nodedragover事件方法中有乙個引數,通過該引數值的target屬性可以獲得拖動結點放置的目標結點。並在nodedragover方法中將該結點的leaf屬性值設為false,**如下:

tree.on("nodedragover", 

function(e));

顯示樹形結構後,將某個結點拖動到葉子結點處,然後放下,就會在葉子結點下生成乙個子結點,而且葉子結點的圖示會變成非葉子結點的圖示,如圖4所示。

圖4  使葉子結點可以

一書的相關章節。

銀河使者

Flex中的拖動技術

flex元件內建了處理拖拽事件的介面,有些控制項已經實現了拖拽功能,比如 list datagrid menu horizontallist printdatagrid tilelist tree,在設定相關的拖拽屬性後,它們都可以在相同型別的組 件之間利用滑鼠來實現資料的轉移。allowdrags...

extjs簡單使用

公司有個websql.由於設計的是大眾化需要。使用的時候需要頻繁的切換,自己使用他的資料來源開了個新的針對自己部門需要的頁面。也是使用的extjs.所以簡單記錄一下。function gridtest var cm new ext.grid.columnmodel cmlode var json v...

ExtJS初探 在專案中使用ExtJS

今天extjs官網發布了extjs最新正式版4.2.1。extjs為開發者在開發富客戶的b s應用中提供豐富的ui元件,具有統一的主題,便於快速開發,提高效率。但顯然它並不適合互聯 的開發。builds 壓縮後的extjs 體積更小,更快 docs 開發文件 examples 官方演示示例 loca...