2010-10-12 29 views
0

我已經創建了一個extJs拖放樹,我正試圖檢查一個節點是否存在於特定的分支中,然後放入。爲此,我覆蓋了一個稱爲beforeDragDrop()Link)的方法,其在整個Target樹,Event對象和Dragged item ID中傳遞。ExtJs獲取放置目標的ID

調用Event.getTarget()爲我提供了與該項目相鄰的項目的目標節點。我真正需要的是放置該項目的目標中的父節點,這將允許我檢查該項目是否已存在於分支中。

有什麼辦法讓ExtJs中的放置目標中的Tree分支的id?

這是一個很遠的鏡頭,但我已經在這個世界上徘徊很長時間了,真的可以用一隻手做。

謝謝!

回答

1

有沒有針對目標節點的parent()方法? getTarget()返回什麼樣的對象?

+0

getTarget()返回節點的HTML元素,例如

Item
。這個問題被放大了,因爲我需要的ID是由ExtJs自動生成的 - ext:tree-node-id,我無法理解如何訪問該屬性 - 它似乎是由JSONLoader在創建時樹被創建。 – 2010-10-12 14:42:52

+1

在'Ext.EventObject'的文檔中,看起來像'getTarget()'的第三個參數是一個布爾值,它指定它是否應該返回一個'Ext.Element'。 'Ext.EventObject'雖然是一個Static類,所以我不知道它是否與'Event'具有相同的方法,但是如果'Event'存在相同的參數,那麼使用'Ext.Element'返回,你可以調用'parent()'。 – 2010-10-12 15:04:29

+0

啊,做得很好,有物體正是我想要的。出於某種原因,調用parent()只返回同一個節點。我錯過了一招嗎? – 2010-10-12 15:37:00

1
var dropposition = tree.getdropPositonModel().getdropPosition(); 
// put it on AJAX require 
params : 
{ 
    dropid : dropposition.data.id // id from getNodes 
}