treepanels拖放默认行为

时间:2012-08-13 18:43:42

标签: extjs drag-and-drop tree extjs4 treepanel

我有两个我想拖放的树梢。我知道有一个插件,但我希望它以某种方式表现。  在我的treepanels中,我显示树的根节点,然后显示其所有子节点。默认的DD允许用户删除树上不同级别的项目(即root的同级,root的子级),我希望所有项目都是root的子项以保持一致性。我怎样才能做到这一点,任何拖动到treepanel的项目都将项目关联为根的子项而不是根的兄弟。 为什么: 对于不了解此功能如何工作的用户,任何方向上的一毫米都可以将项目从兄弟变为子,反之亦然。

此外,我希望如此,所以我只能拖走那些孩子,如果可能的话,根本不能移动。

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。您可以在目标树面板的树视图上收听'beforedrop'事件,并实现您想要的效果。像这样的东西  http://jsfiddle.net/EYtnk/1/ .. beforedrop事件的一个参数是被拖动的节点。您可以检查它是否是源树的根节点,只是'return false;'

P.S:在这个例子中,我只是为两棵树使用了同一个商店..所以两边都添加了节点。