Actionscript 3 防止Flex DataGrid混合事件
我的Datagrid有以下代码:Actionscript 3 防止Flex DataGrid混合事件,actionscript-3,apache-flex,datagrid,flex4.5,Actionscript 3,Apache Flex,Datagrid,Flex4.5,我的Datagrid有以下代码: <s:DataGrid id="proveedoresGrid" top="10" bottom="10" width="426" creationComplete="proveedoresGrid.addEventListener('editIconClicked', itemRendererEditClickHandler);proveedoresGrid.addEventListener('deleteIconClic
<s:DataGrid id="proveedoresGrid" top="10" bottom="10" width="426"
creationComplete="proveedoresGrid.addEventListener('editIconClicked', itemRendererEditClickHandler);proveedoresGrid.addEventListener('deleteIconClicked', btn_eliminar_proveedor_clickHandler);"
dataProvider="{proveedoresModel.modelo.arrayProveedores}"
gridClick="editProveedor(event)"
horizontalCenter="-255" requestedRowCount="4">
<s:columns>
<s:ArrayList>
<s:GridColumn headerText="Edit" width="50" itemRenderer="renderers.EditGridRender" rendererIsEditable="false"></s:GridColumn>
<s:GridColumn dataField="proveedor" headerText="Proveedor" width="370" editable="false"></s:GridColumn>
</s:ArrayList>
</s:columns>
</s:DataGrid>
嗯,在第一列中,我有一个itemsrenderer,它显示两个图标“Edit&Delete”,根据图标的点击,它会发送一个事件。问题是这样的Datagrid还有另一个通用事件“gridClick”。单击第一列中的单元格后,“gridClick”事件始终有效,并且应该适用于不属于第一列的任何其他单元格
我怎样才能做到这一点
谢谢
编辑:
项目渲染器:
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true"
width="50" height="30">
<fx:Metadata>
[Event(name="editIconClicked")]
</fx:Metadata>
<fx:Script>
<![CDATA[
import events.EditItemEvent;
import mx.controls.Alert;
import mx.controls.DataGrid;
override public function prepare(hasBeenRecycled:Boolean):void {}
protected function btn_edit_clickHandler(event:MouseEvent):void {
event.stopImmediatePropagation();
event.stopPropagation();
dispatchEvent(new Event("editIconClicked", true, true));
}
protected function btn_delete_clickHandler(event:MouseEvent):void {
event.stopImmediatePropagation();
event.stopPropagation();
dispatchEvent(new Event("deleteIconClicked", true, true));
}
]]>
</fx:Script>
<s:HGroup width="100%" height="24" top="3" gap="1">
<s:Image id="btn_edit" horizontalCenter="0"
source="@Embed('assets/images/edit_icon.png')"
verticalCenter="0"
click="btn_edit_clickHandler(event)"/>
<s:Image id="btn_delete" horizontalCenter="0"
source="@Embed('assets/images/delete_icon.png')"
verticalCenter="0"
click="btn_delete_clickHandler(event)"/>
</s:HGroup>
[事件(name=“editIconClicked”)]
至少我可以解决我的问题
我不知道单击DataGrid时可以获得columnIndex,基于此,我可以阻止GridClick事件运行,如果columnIndex为0,则表示两个图像中的一个被单击。您是否可以更具体一些?你有什么问题?这两个事件是否正确生成?我希望能够区分gridClick事件和当单击第一列中的单元格时启动的itemRenderer事件。在这种情况下,两个事件都会启动。但是事件是不同的,您可以通过它们的名称来区分它们,不是吗?您可以发布ItemRenderer的代码吗?我可以区分它们,但事实上这两个事件都是启动的@Anton我已经发布了ItemRenderer代码。