Actionscript 3 访问高级datagrid渲染器元素

Actionscript 3 访问高级datagrid渲染器元素,actionscript-3,apache-flex,actionscript,flex4,flex4.5,Actionscript 3,Apache Flex,Actionscript,Flex4,Flex4.5,在AdvancedDataGridRenderProvider中,我为renderer属性指定了customItemRender 这是我的代码: <mx:AdvancedDataGrid id="productADG" dragEnabled="true" displayItemsExpanded="true" dropEnabled="true" variableRowHeight="true" headerHeight="40" minHeight="5

在AdvancedDataGridRenderProvider中,我为renderer属性指定了customItemRender

这是我的代码:

<mx:AdvancedDataGrid id="productADG" dragEnabled="true" displayItemsExpanded="true"
        dropEnabled="true" variableRowHeight="true"
        headerHeight="40" minHeight="5000" height="1000" 
        sortableColumns="false" 
        sortExpertMode="true" width="100%"                                                    
        defaultLeafIcon="{null}" folderOpenIcon="{null}"
        openDuration="400" headerWordWrap="true" >

    <mx:dataProvider>
        <mx:HierarchicalData id="hd" source="{productXML.product}" />
    </mx:dataProvider>

    <mx:columns>
          <mx:AdvancedDataGridColumn dataField="@productName" headerText="Product"  
                 width="120" wordWrap="true"/>
          <mx:AdvancedDataGridColumn dataField="@descriptionTxt" headerText="Description" 
                 width="165" wordWrap="true"/>
          <mx:AdvancedDataGridColumn width="145" headerText="Tools" id="toolsCol" 
                 resizable="false"/>
    </mx:columns>

    <mx:rendererProviders>
            <mx:AdvancedDataGridRendererProvider id="compRend" depth="2" 
                renderer="customItemRender" column="{toolsCol}"/>
    </mx:rendererProviders>
</mx:AdvancedDataGrid>

customItemRender.mxml

<mx:HBox width="100%">
   <mx:Button id="editBtn"/>
</HBox>
<mx:HBox width="100%">
   <mx:Button id="editBtn" click="dispatchEvent(new Event('SomethingHappened', true));"/>
</HBox>

如何从主页(Datagrid驻留)中的customItemRenderer访问“editBtn”


我想从主页手动发送click事件(Datagrid驻留)

我不确定mx组件,但在Spark中,您可以使用getElementAt()从itemRenderer访问项目

也许mx有一个与此相当的版本

但在您的情况下,听起来您只是想在单击“编辑”按钮时执行一些特定的功能。我建议在单击按钮时从ItemRenderer中调度一个自定义事件。确保事件发生泡泡。在主页中,只需侦听DataGrid上的自定义事件

customItemRender.mxml

<mx:HBox width="100%">
   <mx:Button id="editBtn"/>
</HBox>
<mx:HBox width="100%">
   <mx:Button id="editBtn" click="dispatchEvent(new Event('SomethingHappened', true));"/>
</HBox>


在主页中,只需为“SomethingOccessed”添加一个事件侦听器。

介意我问一下为什么要从按钮强制事件吗?