Actionscript 3 访问高级datagrid渲染器元素
在AdvancedDataGridRenderProvider中,我为renderer属性指定了customItemRender 这是我的代码: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
<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”添加一个事件侦听器。介意我问一下为什么要从按钮强制事件吗?