2010-05-02 156 views
0

我有一个自定义标签itemrenderer的数据网格(基本上它使标签看起来像一个传统的HTML超链接)。Adob​​e 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,但我不知道如何做到这一点,因为我不能指定一个id为itemrendered本身。

我尝试以下,但它似乎没有工作:

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 2010-05-03 08:35:01

+0

然后我不得不问为什么你要在介体中加入演示文稿标记? – Robusto 2010-05-03 12:30:35

+0

我不知道我理解你的问题,但现在我已经去使用outerDocument.onItemSelect(event)方法。它的休息封装,但嘿,你必须做你必须做的。 感谢您的帮助。 – JonoB 2010-05-05 09:07:07