actionscript 3 - Prevent Flex DataGrid mix events -
i have following code datagrid:
<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>
well, in first column have s itemrenderer display 2 icons "edit & delete", , depending on icon click, dispatch event. question such datagrid has general event "gridclick". once click on cell first column, 'gridclick' event work , and should work other cell not belonging first column.
how accomplish this?
thanks.
edit:
the itemrenderer:
<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>
at least solve issue.
i did not know columnindex when clicked datagrid , base on this, prevent gridclick event run , in case columnindex 0 means 1 of 2 images clicked.
Comments
Post a Comment