Flex ItemRenderer as CheckBox - PullRequest
       5

Flex ItemRenderer as CheckBox

0 голосов
/ 01 декабря 2011

У меня есть itemRenderer в качестве CheckBox в Flex DataGrid.

Теперь я хочу убедиться, что выбран только один флажок за раз .Если пользователь выбирает флажок, а затем пытается установить другой флажок, предыдущий выбор должен быть отменен.

Как это сделать во Flex?

РЕДАКТИРОВАТЬ:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">



    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.controls.CheckBox;
            import mx.controls.RadioButton;
            import mx.controls.RadioButtonGroup;

            [Bindable]
            protected var renderer:ClassFactory;

            protected function initRenderer() {
                var group:RadioButtonGroup = new RadioButtonGroup();
                var renderer = new ClassFactory(RadioButton);
                renderer.properties = {group:group};
            }

            private var arrayC:ArrayCollection = new ArrayCollection
                (
                    [
                        {fname:"Person1",isSelected:false},
                        {fname:"Person2",isSelected:false},
                        {fname:"Person3",isSelected:false}
                    ]
                );

                    // To be called when we uncheck checkbox ..
            private function unSelect(event:MouseEvent):void {

            }
        ]]>
    </mx:Script>
    <mx:DataGrid id="dg" x="400" y="400" dataProvider="{arrayC}">
        <mx:columns>
            <mx:DataGridColumn id="dgc1" itemRenderer="{renderer}"/>
            <mx:DataGridColumn id="dgc2" dataField="fname"/>
        </mx:columns>
    </mx:DataGrid>
</mx:Application>

1 Ответ

2 голосов
/ 01 декабря 2011

Попробуйте что-то вроде этого:

[Bindable]
protected var renderer:ClassFactory;

protected function initRenderer() {
   var group:RadioButtonGroup = new RadioButtonGroup();
   var renderer = new ClassFactory(RadioButton);
   renderer.properties = {group:group};
}

Свяжите свойство itemRenderer вашей колонки с визуализатором.

EDIT: Первоначально в этом посте был другой ответ, объясняющий, что не стоит использовать флажок, если необходимая функциональность - это то, что пользователи ожидают от кнопок радио. Пользователи ожидают, когда они увидят флажки, что они могут установить более одного. http://www.useit.com/alertbox/20040927.html

...