根据Flex 3中数据网格中的行选择启用/禁用按钮

时间:2011-11-25 11:51:21

标签: actionscript-3 flex flex3

我正在处理的flex项目有一个数据网格和一些控制按钮。有一个名为“开始”的按钮。最初此按钮将被禁用。当我单击数据网格上的一行时,将启用该按钮。但是,当按住Ctrl键并单击同一行时,行选择将消失(发生这种情况)并且应该禁用该按钮,但此处按钮保持启用状态。我该如何解决这个问题。任何建议将不胜感激。

元帅。

3 个答案:

答案 0 :(得分:2)

您可以通过以下代码实现它尝试:
<mx:Button label="Start" click="Myfun(event)" enabled="{MyGrid.selectedIndex != -1}"/> 如果您未选择MyGrid按钮中的任何行,则在您选择启用按钮时将禁用该行。

答案 1 :(得分:1)

如果可能,请在DataGrid中使用ItemEditor或ItemREndered。

{

<mx:Script>
    <![CDATA[
        public var arr:Array = new Array({label:'ABC',score:'78'},
                                         {label:'DEF',score:'50'},
                                         {label:'GHI',score:'70'},
                                         {label:'JKL',score:'80'},
                                         {label:'TRE',score:'50'});

        public function dgCLG_dataChange():void
        {

        }

        public function dgCLG_change():void
        {

        }

    ]]>
</mx:Script>

<mx:VBox height="100%" width="100%" horizontalAlign="center" verticalAlign="middle">
    <mx:DataGrid id="dgCLG" dataProvider="{arr}" editable="true" dataChange="{dgCLG_dataChange();}" change="{dgCLG_change();}">
        <mx:columns>
            <mx:DataGridColumn headerText="Label" dataField="label" editable="false">

            </mx:DataGridColumn>
            <mx:DataGridColumn headerText="Marks" dataField="score" editable="true" itemEditor="ComNS"
                editorDataField="value">

            </mx:DataGridColumn>
        </mx:columns>
    </mx:DataGrid>  
</mx:VBox>

}

在这里你会发现ComNS是Numeric Stepper的Custom Component。当你选择特定的行和列时,它将被显示,当它被取消选择时,它将显示为一个简单的文本。

答案 2 :(得分:0)

我研究过并找到了一种与M.S类似的解决方案。纳亚克的回答。 我为给定的数据网格获取了selectedIndex值。如果selectedIndex不等于-1,则启用按钮,否则按钮将被禁用。

最后这个问题得到了解决。

感谢大家。 元帅。