从mx:Repeater中获取mx:CheckBox值

时间:2009-04-28 16:56:49

标签: actionscript-3 flex3 mxml

我有一个对象数组,我用它作为转发器的数据源。

<mx:Repeater id="categoryRepeater" dataProvider="{this.allCategories}">
<mx:HBox>
<mx:Spacer width="20"/>
<mx:CheckBox id="categoryCheckBox" label="{categoryRepeater.currentItem.question}"/>
</mx:HBox>
</mx:Repeater>

我希望能够分辨出列表中的哪个复选框已被检查,但我不知道该怎么做。我知道我可以在单击时添加一个函数,但我不知道如何判断哪个复选框称为函数。

2 个答案:

答案 0 :(得分:1)

使用currentIndex属性。

答案 1 :(得分:1)

我意识到这是一个非常古老的帖子,但我遇到了同样的问题,而currentIndex对我来说并不是一个充分的答案。我发现更好的工作是在点击上创建一个功能:

<mx:Repeater id="rp" dataProvider="{dp}">  
<s:CheckBox height="100%" width="100%" label="{String(rp.currentItem)}"  
click="showAlert(event);"/>
</mx:Repeater>

并且showAlert函数看起来像这样:

private function showAlert(evt:MouseEvent):void {
  var curBox:CheckBox = evt.currentTarget as CheckBox;
  var str:String = curBox.content.toString();
  if(curBox.selected)
    Alert.show(str + " clicked");
}

通过这种方式,您可以将事件作为ActionBox代码中的CheckBox处理,并查找是否已选择等值。