Extjs4 In TreeGrid如何仅限制其父节点中的叶子拖放

时间:2014-01-06 04:30:02

标签: extjs4.2 treegrid

我需要树以这样的方式运行:当用户拖动叶子并尝试对其进行排序时,叶子只能在其父级内进行排序。任何人都可以帮助我...

例如:

fruits and vegetables(Root)
------\Fruits(Parent1)
---------\Orange (Leaf1.1)
---------\Apple (Leaf1.2)
---------\Dragon Fruit (Leaf1.3)
------\Veggie(Parent2)
---------\Potato (Leaf1)
---------\Beetroot (Leaf2)
---------\Yam (Leaf3)

只允许在水果或蔬菜之间订购。 Leaf's 1.1,1.2,1.3只能在父1中排序。感谢。

3 个答案:

答案 0 :(得分:0)

您必须仅通过代码。在拖拽的处理函数中,检查类型是蔬菜还是水果,父类型是否相同。如果两者不相同,则不执行任何操作并调用e.stopEvent()。

- 斯里达尔

答案 1 :(得分:0)

treeGrid.setCanReparentNodes(false)

答案 2 :(得分:0)

请使用treeviewdragdrop代替gridviewdragdrop,然后在听众身上做点什么:

nodedragover( targetNode, position, dragData, e, eOpts )

就像这样:

view.on('nodedragover', function(node, position, dragData){
   var me = this, record = me.getRecord(node), srcNode = dragData.records[0];
    return srcNode.parentNode == record; 
});

我在我的项目中得到了它。