Apache flex Flex防止数据网格在拖动后编辑&;滴
我有一个AdvancedDataGrid,可编辑参数为“true”。我的问题是,在成功拖放之后,该项目正在被编辑,我不希望发生这种情况 我尝试使用以下内容创建自定义advancedDataGrid:Apache flex Flex防止数据网格在拖动后编辑&;滴,apache-flex,drag-and-drop,advanceddatagrid,Apache Flex,Drag And Drop,Advanceddatagrid,我有一个AdvancedDataGrid,可编辑参数为“true”。我的问题是,在成功拖放之后,该项目正在被编辑,我不希望发生这种情况 我尝试使用以下内容创建自定义advancedDataGrid: override protected function dragCompleteHandler(event:DragEvent):void{ trace("call dragCompleteHandler"); super.dragCompleteHa
override protected function dragCompleteHandler(event:DragEvent):void{
trace("call dragCompleteHandler");
super.dragCompleteHandler(event);
clearAllSelection();
selectedItem = null;
}
但它不起作用,我只是不知道我是否必须用preventDefault或其他东西来停止事件。我还研究了AdobeAdvancedDataGrid代码,似乎在dragcomplete事件之后没有任何调度
在拖放之后,如何停止这个恼人的版本(或焦点)
编辑2012年2月27日
解决方案是在构造函数(或组件的init函数)中侦听DRAG_START和DRAG_COMPLETE事件:
以及:
尝试收听
itemeditbeging
事件。它是可取消的,因此您可以使用preventDefault()
停止编辑器的显示。您可能需要存储已拖动/正在拖动的项目,以防止仅在发生拖放时发生编辑事件。我不确定itemeditbeging
和拖放事件的调度顺序,因此需要进行一点实验。使用trace
是调试这些事件的好方法
我能想到的另一个解决方案是,当拖放开始时,将
editable
设置为false
,当拖放完成时,将其设置为true
。尝试收听itemEditBeging
事件。它是可取消的,因此您可以使用preventDefault()
停止编辑器的显示。您可能需要存储已拖动/正在拖动的项目,以防止仅在发生拖放时发生编辑事件。我不确定itemeditbeging
和拖放事件的调度顺序,因此需要进行一点实验。使用trace
是调试这些事件的好方法
我能想到的另一个解决方案是在拖放开始时将editable
设置为false
,并在拖放完成时将其设置为true
addEventListener(DragEvent.DRAG_START,itemDragStartHandler);
addEventListener(DragEvent.DRAG_COMPLETE,itemDragCompleteHandler);
protected function itemDragStartHandler(event:DragEvent):void
{
editable = "false";
}
protected function itemDragCompleteHandler(event:DragEvent):void
{
editable = "true";
}