2014-06-23 2 views
0

AdvancedDataGridRendererProvider에서 렌더러 속성에 대한 customItemRender를 할당했습니다.고급 DataGrid 렌더러 요소에 액세스

<mx:HBox width="100%"> 
    <mx:Button id="editBtn"/> 
</HBox> 

우리가 메인 페이지에 customItemRenderer에서 "editBtn"를 액세스 할 수있는 방법 (DataGrid에가있는)

<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

I :

내 코드입니다 메인 페이지에서 수동으로 클릭 이벤트를 보내고 싶습니다 (Datagrid가 상주합니다).

+0

왜 버튼에서 이벤트를 강제로 실행할지 묻는다면 어떨까요? – CyanAngel

답변

0

mx 구성 요소에 대해서는 잘 모르겠지만 Spark에서는 getElementAt()를 사용하여 itemRenderer에서 항목에 액세스 할 수 있습니다.

var renderer:customItemRender = productADG.getElementAt(0) as customItemRender; 

아마도 mx는 이에 해당합니까?

그러나 편집 단추를 클릭 할 때 특정 기능을 수행하려는 것처럼 들릴 수도 있습니다. 단추를 클릭하면 ItemRenderer에서 사용자 지정 이벤트를 전달하는 것이 좋습니다. 이벤트가 거품 나는지 확인하십시오. 기본 페이지에서 DataGrid의 사용자 지정 이벤트를 수신 대기합니다.

메인 페이지에서 customItemRender.mxml

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

은 'SomethingHappened'에 대한 이벤트 리스너를 추가합니다.

관련 문제