我正在处理的flex项目有一个数据网格和一些控制按钮。有一个名为“开始”的按钮。最初此按钮将被禁用。当我单击数据网格上的一行时,将启用该按钮。但是,当按住Ctrl键并单击同一行时,行选择将消失(发生这种情况)并且应该禁用该按钮,但此处按钮保持启用状态。我该如何解决这个问题。任何建议将不胜感激。
元帅。
答案 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,则启用按钮,否则按钮将被禁用。
最后这个问题得到了解决。
感谢大家。 元帅。