2010-10-07 62 views
4

我有一个面板,面板内有三个网格。 我希望能够通过拖放来移动网格。 我有可拖动的:true和enableDragDrop:true,这似乎允许我拖动但不拖放。在面板上拖放网格

任何天才的帮助将不胜感激。

+0

我没有太多经验,但设置这些参数可以让您拖动网格,就像您可以体验的那样。为了“放弃”它,我认为你需要设置一个放置区域,以便告诉放置网格的位置,放置在哪个区域。我认为这个关于医院和患者的例子可能很有用,请尝试查看:http://dev.sencha.com/deploy/dev/examples/dd/dragdropzones.html – Danilo 2011-01-26 21:03:42

回答

5

为了删除可拖动的内容,您需要定义一个Ext.dd.DropTargetExt.dd.DropZone并定义该项目被删除时所需的行为。如果区域中有多个放置目标位置不同,则使用DropZone,但听起来像您需要DropTarget,它用于放置单个元素(例如面板内部)。

为了使整个面板能够删除的东西上,面板进入的DropTarget的构造函数,并重写notifyDrop功能:传递到函数

var panelDropTarget = new Ext.dd.DropTarget(panel, { 
    notifyDrop: function(dragsource, event, data) { 
     // do something with the dragsource 
    } 
}); 

dragsource将网格在其中(我认为它将是dragsource.panel,但使用Firebug调试来确定该源对象具有的内容)。

一旦你在网格上有一个句柄,你可以在面板中重新排序它,移动它的某个地方,或者定义你想要的任何行为。