Actionscript 3 复选框/单选按钮,用于选择和取消选择弹出窗口中的所有复选框
我有一个复选框列表,我希望能够同时选择和取消选择所有复选框,我将如何使用复选框来实现这一点Actionscript 3 复选框/单选按钮,用于选择和取消选择弹出窗口中的所有复选框,actionscript-3,apache-flex,actionscript,flash-builder,datagridviewcheckboxcell,Actionscript 3,Apache Flex,Actionscript,Flash Builder,Datagridviewcheckboxcell,我有一个复选框列表,我希望能够同时选择和取消选择所有复选框,我将如何使用复选框来实现这一点 <s:layout> <s:VerticalLayout/> </s:layout> <s:Button click="onClick()" label="{this.currentState=='check'?'uncheck':'check'}"/> <mx:VBox> &l
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button click="onClick()" label="{this.currentState=='check'?'uncheck':'check'}"/>
<mx:VBox>
<mx:CheckBox id="newCB" label="NEW" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="amendCB" label="AMEND" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true" selected.check="true" selected.uncheck="false"/>
</mx:VBox>
</s:WindowedApplication>
我的复选框的mxml如下所示:
<mx:VBox>
<mx:CheckBox id="newCB" label="NEW" selected="true" change="onCheckboxChange(event)" />
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" change="onCheckboxChange(event)"/>
<mx:CheckBox id="amendCB" label="AMEND" selected="true" change="onCheckboxChange(event)" />
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true" change="onCheckboxChange(event)" />
</mx:VBox>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button click="onClick()" label="{this.currentState=='check'?'uncheck':'check'}"/>
<mx:VBox>
<mx:CheckBox id="newCB" label="NEW" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="amendCB" label="AMEND" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true" selected.check="true" selected.uncheck="false"/>
</mx:VBox>
</s:WindowedApplication>
例如,您可以使用按钮选择或取消选择所有复选框,如下所示:
<mx:VBox id="box">
<mx:CheckBox id="newCB" label="NEW" selected="true" change="onCheckboxChange(event)" />
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" change="onCheckboxChange(event)"/>
<mx:CheckBox id="amendCB" label="AMEND" selected="true" change="onCheckboxChange(event)" />
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true" change="onCheckboxChange(event)" />
</mx:VBox>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button click="onClick()" label="{this.currentState=='check'?'uncheck':'check'}"/>
<mx:VBox>
<mx:CheckBox id="newCB" label="NEW" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="amendCB" label="AMEND" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true" selected.check="true" selected.uncheck="false"/>
</mx:VBox>
</s:WindowedApplication>
希望能有所帮助。我为您制作了一个小沙盒应用程序,展示视图状态的使用。在按钮上单击它会更改状态,并且复选框“
selected
properties”可以绑定到该状态
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button click="onClick()" label="{this.currentState=='check'?'uncheck':'check'}"/>
<mx:VBox>
<mx:CheckBox id="newCB" label="NEW" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="amendCB" label="AMEND" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true" selected.check="true" selected.uncheck="false"/>
</mx:VBox>
</s:WindowedApplication>
通过使用状态
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button click="onClick()" label="{this.currentState=='check'?'uncheck':'check'}"/>
<mx:VBox>
<mx:CheckBox id="newCB" label="NEW" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="amendCB" label="AMEND" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true" selected.check="true" selected.uncheck="false"/>
</mx:VBox>
</s:WindowedApplication>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button click="onClick()" label="{this.currentState=='check'?'uncheck':'check'}"/>
<mx:VBox>
<mx:CheckBox id="newCB" label="NEW" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="amendCB" label="AMEND" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true" selected.check="true" selected.uncheck="false"/>
</mx:VBox>
</s:WindowedApplication>
通过使用循环
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button click="onClick()" label="{this.currentState=='check'?'uncheck':'check'}"/>
<mx:VBox>
<mx:CheckBox id="newCB" label="NEW" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="amendCB" label="AMEND" selected="true" selected.check="true" selected.uncheck="false"/>
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true" selected.check="true" selected.uncheck="false"/>
</mx:VBox>
</s:WindowedApplication>
<?xml version="1.0"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script><![CDATA[
[Bindable]
private var checkAll:Boolean = false;
public function onClick():void {
for each(var c:CheckBox in checkboxes.getChildren()){
c.selected = checkAll;
}
checkAll = !checkAll;
}
]]></fx:Script>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button click="onClick()" label="{checkAll?'check all':'uncheck all'}"/>
<mx:VBox
id="checkboxes">
<mx:CheckBox id="newCB" label="NEW" selected="true"/>
<mx:CheckBox id="tradeCB" label="TRADE" selected="true" />
<mx:CheckBox id="amendCB" label="AMEND" selected="true" />
<mx:CheckBox id="cancelCB" label="CANCEL" selected="true"/>
</mx:VBox>
</s:WindowedApplication>
只有当复选框已全部选中或全部未选中时,此选项才会起作用。如果有2个选中框和3个未选中框,则会在所有5个、3个选中和2个未选中复选框上切换属性。@Jordan.J.D我知道这一点,OP应该知道这一点。当然,这只是一个例子。例如,OP可以使用布尔值来设置选择。在这种情况下,方框是什么?@pconn222box
是VBox
的id:
,对不起,我的回答中没有提到。没问题,谢谢,上面的问题还有其他解决方法吗?如果选择了2,并且用户希望选择全部,则保留已选择的2并同时选择其余的?我已被选中。选中并选中。取消选中-状态特定属性语法“selected.uncheck”不支持MXMLlanguage@pconn222您使用的是什么版本的flex?我不确定,使用Flash Builder 4.6还有其他方法吗?我的版本比以前的版本旧2009@pconn222,你可以试试阿克莫佐的解决方案,明白吗?