选择单选按钮组中的所有单选按钮

时间:2011-09-15 13:59:35

标签: flex4 radio-button

您好,

我在组件mxml中有一个列表,如下所示:

        <s:VGroup>
            <s:Label text="TESTING" textDecoration="underline"/>
            <s:List id="recouvrementModulesList" itemRenderer="renderers.ListRenderer">
                <s:dataProvider>
                    <s:ArrayList>
                        <fx:String>Test</fx:String>
                                            <fx:String>Test2</fx:String>
                                            <fx:String>Test3</fx:String>
                    </s:ArrayList>
                </s:dataProvider>
            </s:List>
        </s:VGroup>

我的ListRenderer itemrenderer如下:

    <?xml version="1.0" encoding="utf-8"?>
    <s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                    xmlns:s="library://ns.adobe.com/flex/spark" 
                    xmlns:mx="library://ns.adobe.com/flex/mx" 
                    autoDrawBackground="true">

        <fx:Script>
            <![CDATA[
            ]]>
        </fx:Script>


        <fx:Declarations>
            <mx:RadioButtonGroup id="rbg" />    
        </fx:Declarations>


        <s:HGroup horizontalAlign="center" verticalAlign="middle">
            <mx:RadioButton id="rb" group="{rbg}" label="{data}"/>
        </s:HGroup>

    </s:ItemRenderer>

请注意,itemrenderer中的radiobutton属于“rbg”组。在此示例中,List显示3行(因此每行3个radioButtons)。但是,当我一次选择radioButtons时,允许对所有radioButtons进行选择。从逻辑上讲,如果它属于一个组,它应该只允许1个选择,但事实并非如此。

有人可以帮忙解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:1)

使用设置数据方法:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations>
    <s:RadioButtonGroup id="rbg"/>
</fx:Declarations>

<s:VGroup>
    <s:Label text="TESTING" textDecoration="underline"/>
    <s:List id="recouvrementModulesList" >
        <s:dataProvider>
            <s:ArrayList>
                <fx:String>Test</fx:String>
                <fx:String>Test2</fx:String>
                <fx:String>Test3</fx:String>
            </s:ArrayList>
        </s:dataProvider>
        <s:itemRenderer>
            <fx:Component>
                <mx:HBox>

                <fx:Script>
                    <![CDATA[
                        override public function set data( value:Object ) : void 
                        {
                            super.data = value;
                                rb.label=data.toString();
                                rb.group=outerDocument.rbg;
                        }

                    ]]>
                </fx:Script>

                    <s:RadioButton id="rb" />
                </mx:HBox>
            </fx:Component>
        </s:itemRenderer>
    </s:List>
</s:VGroup>

答案 1 :(得分:0)

尝试将名称属性添加到单选按钮定义中。它的遗漏可能导致按钮被单独处理而不是作为一个单元处理。