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



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

元帅。

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

如果可能,请在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是数字步进器的自定义组件。当你选择特定的行和列时,它将被显示,当它被取消选择时,它会显示为一个简单的文本。

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

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

感谢大家。元帅

最新更新