0

一度にすべてを選択および選択解除できるようにしたいチェック・ボックスのリストがありますが、|チェック・ボックスを使用してこれを行うにはどうすればよいですか?

私が持っているチェックボックスの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>
4

2 に答える 2

0

たとえば、ボタンを使用して、次のようにすべてのチェックボックスを選択または選択解除できます。

<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>

それで

var num_children:int = box.numChildren;
var selected:Boolean = true;

for(var i:int = 0; i < num_children; i++)
{   
    var checkbox:CheckBox = CheckBox(box.getChildAt(i));
        checkbox.selected = ! selected;
}

編集 :

を逆にするだけで、次のようselectedになります。

for(var i:int = 0; i < num_children; i++)
{   
    var checkbox:CheckBox = CheckBox(box.getChildAt(i));
    if(checkbox.selected == selected) checkbox.selected = ! selected;
}
selected = false;

それが役立つことを願っています。

于 2015-10-22T18:27:51.103 に答える
0

ビュー ステートの使用方法を示すために、小さなサンドボックス アプリを作成しました。ボタンをクリックすると状態が変化し、チェックボックスのselectedプロパティを状態にバインドできます。

状態を使用して

    <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>
于 2015-10-22T20:42:25.403 に答える