Flexでは、フォームをクリアする必要があるときに、ラジオボタングループがクリアを拒否しているように見えるという問題が発生することがあります。すべてのボタンにselected = falseを設定し、グループにselection = nullを設定し、両方を実行します。それらを2回など、常に選択されたままの厄介な小さなラジオボタンが1つ表示されるように見えます。これをどのように解決し、ラジオボタングループを最初の非選択状態に復元しますか?
7 に答える
すべてのラジオボタンをRadioButtonGroupにグループ化してから、グループ選択をnullに設定する必要があります。
<mx:RadioButtonGroup id="myGroup" />
<mx:RadioButton label="One" groupName="myGroup" />
<mx:RadioButton label="Two" groupName="myGroup" />
<mx:RadioButton label="Three" groupName="myGroup" />
<mx:Button label="Clear" click="myGroup.selection = null;" />
すべてのラジオボタンをにRadioButtonGroup
設定してから、RadioButtonGroup.selectionをnullに設定してみてください。
コントロールの実装方法については、http://livedocs.adobe.com/flex/3/langref/mx/controls/RadioButtonGroup.html#includeExamplesSummaryを参照してください。RadioButtonGroup
私が知っているこれを解決する唯一の方法は、他のすべての選択を解除するために選択した非表示のダミーラジオボタンを追加することです。
これは機能しませんか?
function clearRadioSelection(theGroup) {
theGroup.selection.selected = false;
theGroup.selectedRadio = undefined;
theGroup.dispatchEvent({type:"change"});
}
theGroupは、http: //kb2.adobe.com/cps/000/c4e4be2f.htmlのラジオボタングループ(個々のラジオボタンではありません)です。
RadiobuttonGroupを使用していて、特定のグループのすべてのラジオボタンコントロールをバインドしていると思います。
だから、簡単な方法:
プライベート関数radioGroupReset():void
{{
radioGroup1.selection = null;
}
これはうまくいくはずです!
明らかに、前の答えはあなたが最もきれいな方法で行くところにあなたを連れて行くはずです、しかしあなたが壁に頭をぶつけているなら、あなたがそれをクリアする必要があるときにあなたのすべてのラジオボタンをコンポーネントに集めそしてそれからコンポーネント全体を再描画するだけです。問題が解決しました。
とにかくフォームはせいぜい薄っぺらです。人生を難しくする必要はありません。
radioButtonGroupのselectionプロパティをnullに設定するだけで、初期状態になります。
例:
<mx:RadioButtonGroup id="answers" />
次に、ActionScriptで次の行を記述します
answers.selection = null;
ラジオボタンが選択されていない状態でグループをリセットします。お役に立てば幸いです。私は次のリンクからアイデアを取り入れました。幸運を祈ります。
http://blog.flexexamples.com/2008/01/06/clearing-a-selected-radiobutton-control-in-flex/