DataBrid与RadioButtonGroup itemrenderer

时间:2009-08-12 14:42:13

标签: flex datagrid itemrenderer

我不知道怎么做,现在尝试了几件事,所以我会问。下面显示了我想要的内容。我只是不知道如何让它发挥作用。

我有一个AC,有几个问题和相关的答案。这些必须在DG中显示,并且想法是DG的行和列绑定到AC。例如,如果question1的答案为Yes,则Yes按钮必须为true,其他两个必须为false(如正常的radiobuttongroup行为)。但是当我通过点击它来更改按钮时,AC的动作数据字段应该相应地改变。我在这里清楚了吗?

动态问卷调查。任何帮助都非常感谢。

<?xml version = "1.0"?>
<mx:Application xmlns:mx = "http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;

            [Bindable]
            public var questions : ArrayCollection = new ArrayCollection([
                { question: 'Question 1', anwer: 'Yes' },
                { question: 'Question 2', anwer: 'No' },
                { question: 'Question 3', anwer: 'Unknown' }, ]);
        ]]>
    </mx:Script>

    <mx:Panel title = "Questionaire example" height = "100%" width = "100%" paddingTop = "10"
              paddingLeft = "10" paddingRight = "10">

        <mx:DataGrid id = "dg" width = "100%" height = "100%" dataProvider = "{questions}">
            <mx:columns>
                <mx:DataGridColumn dataField = "question" headerText = "Questions"/>
                <mx:DataGridColumn width = "80" textAlign = "center" editable = "false"
                                   headerText = "Yes">
                    <mx:itemRenderer>
                        <mx:Component>
                            <mx:HBox horizontalAlign = "center" verticalAlign = "middle">
                                <mx:RadioButton/>
                            </mx:HBox>
                        </mx:Component>
                    </mx:itemRenderer>
                </mx:DataGridColumn>
                <mx:DataGridColumn width = "80" textAlign = "center" editable = "false"
                                   headerText = "No">
                    <mx:itemRenderer>
                        <mx:Component>
                            <mx:HBox horizontalAlign = "center" verticalAlign = "middle">
                                <mx:RadioButton/>
                            </mx:HBox>
                        </mx:Component>
                    </mx:itemRenderer>
                </mx:DataGridColumn>
                <mx:DataGridColumn width = "80" textAlign = "center" editable = "false"
                                   headerText = "Unknown">
                    <mx:itemRenderer>
                        <mx:Component>
                            <mx:HBox horizontalAlign = "center" verticalAlign = "middle">
                                <mx:RadioButton/>
                            </mx:HBox>
                        </mx:Component>
                    </mx:itemRenderer>
                </mx:DataGridColumn>
            </mx:columns>
        </mx:DataGrid>


    </mx:Panel>
</mx:Application>

2 个答案:

答案 0 :(得分:0)

ToggleButtonBarRadioButton更容易使用,并且它在功能上是相同的组件(设置selectedIndex - 一次只能选择一个)。

不要将每个单选按钮放在自己的列中,只需将ToggleButtonBar放在一列中。

答案 1 :(得分:0)

当您谈到“行动”数据字段时,不确定您所指的是什么:

'但是当我点击它来更改按钮时,AC的动作数据字段应该相应地改变。'

点击问题1的“是”时,您想要发生什么?

在itemrenderers中设置数据会覆盖设置数据函数,当该渲染器初始化时,该行的所有数据都将出现在值对象中