【问题标题】:Click Event in a cell of a Flex Spark Datagrid在 Flex Spark 数据网格的单元格中单击事件
【发布时间】:2013-05-09 20:11:32
【问题描述】:

我有以下代码:

<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 传递给主 App?

谢谢。

【问题讨论】:

    标签: actionscript-3 apache-flex flex4.5 flexbuilder


    【解决方案1】:

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

    【讨论】:

    • 我如何猜测是哪个项目触发了该事件?我的意思是,数据网格中的行。
    • 因此每个事件对象都有 2 个属性。 currentTarget 是绑定监听器的,target 是调度事件的。
    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多