Ext JS 如何实现Grid的拖拽
Ext JS 提供了一个Grid的插件类 Ext.grid.plugin.DragDrop 实现Grid 的拖放功能, 该类的别名是 plugin.gridviewdragdrop
。
该插件会将特定的Ext.dd.DragZone和Ext.dd.DropZone实例附加到了Grid的View 上,DropZone是放置的区块,接收来自具有相同ddGroup的DragZone的拖放,包括来自同一网格内的拖放。
注意,在触摸手势可用的情况下,长按手势将启动拖动,以便仍可使用touchstart来启动滚动。
在实现Pointer事件标准(IE)的平台上,touchstart事件通常会被平台占用,但是,此插件使用longpress事件触发拖动,因此touchstart不会启动滚动。在这些平台上,双指拖动手势将滚动内容,或单指拖动空白区域的视图将滚动内容。
在放置操作的期间,将一个数据对象传递给参与的DropZone的drop处理程序。拖动数据对象具有以下属性:
-
copy:布尔值
copy的值。如果allowCopy为true,并且在开始拖动操作时按下了控制键,则为true。 -
view:GridView
源网格视图,从中拖动开始 -
ddel:HTMLElement
随光标移动的拖动代理元素 -
item:HTMLElement
在其中注册mousedown事件的网格视图节点 -
records:Array
表示从源网格视图中拖动的选择数据的Ext.data.Models数组