我正在处理的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,则启用按钮,否则按钮将被禁用。
最后这个问题得到了解决。
感谢大家。元帅