需要识别组件的selectedItem

时间:2010-03-17 10:26:45

标签: flex

我正在创建许多动态Flex组件,如RadioButton,Combo Box,CheckBox。

if(type=="mx.controls.CheckBox"){
            //if(rep.currentIndex<5){
                for each(j in x){
                k=createNewInstanceOfClass(rep.currentItem.type);           
                k.id="radioGroup"+rep.currentItem;
                k.label=j.linkname;
                k.data=j.linkname;
                linkPanel[rep.currentIndex].addChild(DisplayObject(k));
                }

MXML

<mx:Panel layout="horizontal" id="linkPanel" title="Evaluation" fontWeight="bold" height="100%" backgroundColor="0xFFF7E6"
                                borderThicknessLeft="0" borderThicknessRight="0" cornerRadius="10" headerHeight="20" dropShadowEnabled="false" roundedBottomCorners="true" verticalScrollPolicy
                                ="off" horizontalScrollPolicy="off" headerColors="[#ffffff,#ffffff]" width="100%">
                                <mx:Form>
                                <mx:FormItem paddingLeft="2" paddingTop="2" paddingBottom="2">
                                    <mx:Repeater id="rep2" dataProvider="{sendToActionScript(rep.currentItem.link)}" />
                                </mx:FormItem>
                                </mx:Form>
                            </mx:Panel>

当我点击最后提交时,我需要在每个问题中获得所有选定的值。所有组件都是在运行时动态创建的。

1 个答案:

答案 0 :(得分:1)

您可以使用getChildren()列出linkPanel的子项 循环浏览它们时,请阅读“已选择”属性

        public function test():void {
            for each ( var obj:Object in linkPanel.getChildren()) {
                if( obj is RadioButton) {
                    Alert.show( (obj as RadioButton).selected.toString());
                }

            }
        }

如果您要创建属于某个组的单选按钮列表,请查看该组的“selectedValue”

<mx:RadioButtonGroup id="rbg" />
<mx:RadioButton id="answer1" group="{rbg}" label="Answer 1" />

public function test():void {
    Alert.show( rbg.selectedValue.toString())
}