2013-03-04 69 views

回答

3

在你kendoTreeView,定义dragdrop事件处理程序如下:

drag  : function (ev) { 
    if (!$(ev.dropTarget).hasClass("k-in k-state-hover")) { 
     ev.setStatusClass("k-denied") 
    } 
}, 
drop  : function (ev) { 
    if (ev.sourceNode === ev.destinationNode) { 
     ev.setValid(false); 
    } 
} 

drag我检查,我们是的元素,如果不是我设置的状态类k-denied它将clue格式化为被拒绝,但也防止将其丢弃。

drop我只是检查,我没有在自己的顶部防止堆栈溢出。

在此处运行示例:http://jsfiddle.net/OnaBai/mu92b/

+0

您的代码适用于单个树。但在我的场景中,我有2棵树,我将元素从左边的树拖到另一棵。 – Nipuna 2013-03-04 12:10:46

+1

此解决方案适用于两棵树,并将元素从一棵树移动到另一棵树。看到它在这里运行(http://jsfiddle.net/OnaBai/mu92b/1/)。它不能控制的是你从树1移动到树2,而不是反过来或在同一棵树内。那是你想要控制的吗? – OnaBai 2013-03-04 12:19:35

+1

版本只允许tree1在tree2的元素上:http://jsfiddle.net/OnaBai/eyjTN/ – OnaBai 2013-03-04 16:18:27