2010-05-02 3 views
0

사용자 정의 레이블 itemrenderer을 가진 DataGrid가 있습니다 (기본적으로 레이블은 기존 html 하이퍼 링크처럼 보입니다).Adobe Flex Datagrid : addEventListener MouseEvent.CLICK

<mx:DataGridColumn id="itemId"> 
    <mx:itemRenderer> 
    <mx:Component> 
     <controls3:HyperlinkLabel text="{data.doc}" /> 
    </mx:Component> 
    </mx:itemRenderer> 
</mx:DataGridColumn> 

위의 코드는 완벽하게 작동합니다.

이 itemrenderer에 이벤트 리스너를 추가하려고합니다.하지만 itemrendered 자체에 대한 ID를 지정할 수 없다는 점을 감안할 때이 작업을 수행하는 방법을 모르겠습니다.

나는 다음을 시도했지만 작동하는 것 나던 :

itemId.addEventListener(MouseEvent.CLICK, onItemSelect); 

답변

1

당신은 ID가 필요하지 않습니다. 그냥 event.currentTarget

<mx:DataGridColumn id="itemId"> 
    <mx:itemRenderer> 
    <mx:Component> 
     <controls3:HyperlinkLabel text="{data.doc}" click="onItemSelect(event)" /> 
    </mx:Component> 
    </mx:itemRenderer> 
</mx:DataGridColumn> 

그리고 ... 최대 스크립트 태그에 ... 나는 그게 가능하다고 생각하지 말아

private function onItemSelect(event:MouseEvent) : void { 
// do something with event.currentTarget 
} 
+0

을 사용을한다. 첫째, 그 방법을 사용하고 싶다면 outerDocument.onItemSelect (event)가 될 것입니다. 하지만 내 모든 코드가 중재자이므로 가능한 한 모든 경우에 eventlistener를 사용하려고합니다. – JonoB

+0

그러면 왜 중재자에게 프리젠 테이션 마크 업을 걸고 있는지 물어야합니다. – Robusto

+0

귀하의 질문을 이해할 수 있는지 모르겠지만 지금은 outerDocument.onItemSelect (이벤트) 메서드를 사용하여 갔다. 그것은 캡슐화를 중단하지만, 당신이해야 할 일을해야합니다. 도움 주셔서 감사합니다. – JonoB