2013-05-09 69 views
1

的细胞事件我有以下代码:单击在Flex数据网格星火

<s:DataGrid id="preciosGrid" top="65" width="935" height="379" horizontalCenter="0" requestedRowCount="4" 
      dataProvider="{clientModel.model.arrayColumnProducts}"> 
    <s:columns> 
     <s:ArrayList> 
      <s:GridColumn       headerText="edit" width="30" itemRenderer="renderers.EditGridRender"></s:GridColumn> 
      <s:GridColumn dataField="product"  headerText="Product" width="200" editable="false"></s:GridColumn> 
      <s:GridColumn dataField="provider" headerText="" width="52" editable="true" itemRenderer="renderers.PriceCellItemRenderer"></s:GridColumn> 
     </s:ArrayList> 
    </s:columns> 
</s:DataGrid> 

,需要能够赶上仅从编辑单元格(第一列)双击事件。

我的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:Script> 
    <![CDATA[ 
     import events.EditItemEvent; 

     import mx.controls.Alert; 
     override public function prepare(hasBeenRecycled:Boolean):void {} 
    ]]> 
</fx:Script> 
<s:Image id="btn_edit" horizontalCenter="0" source="@Embed('assets/images/edit_icon.png')" 
     verticalCenter="0" 
     doubleClickEnabled="true" 
     doubleClick="Alert.show('clicked')"/> 

我如何可以传递的itemRenderer单击事件到主应用程序?

谢谢。

回答

1

其中一种方法是在您的ItemRenderer中创建一个EventListener,它将调度冒泡设置为true的自定义事件。而在你的主应用程序中,你可以听这个自定义事件。

+0

我怎样才能猜出哪个项目触发了事件?我的意思是,在数据网格中的行。 – Apalabrados 2013-05-10 10:21:05

+0

因此每个事件对象都有2个属性。 currentTarget是绑定侦听器的那个,target是分派事件的那个。 – codingbuddha 2013-05-10 12:37:26