2009-07-06 2 views
7

In Flex, manchmal, wenn Sie ein Formular löschen müssen Sie das Problem, dass Radio Button-Gruppen scheinen, Clearing auszurotten: versuchen Sie, wie Sie vielleicht, auf allen Schaltflächen selected = false, Einstellung selection = null für die Gruppe, beides Wenn du sie zweimal spielst usw., scheinst du immer mit einem nervtötenden kleinen Radioknopf zu enden, der immer noch ausgewählt ist. Wie lösen Sie das Problem und stellen Sie die Optionsfeldgruppe wieder in den ursprünglichen Zustand ohne Auswahl ein?In Flex, wie deaktiviere ich alle Optionsfelder in einer Gruppe?

Antwort

12

Sie müssen alle die Radio-Buttons in eine RadioButtonGroup gruppieren und dann die Gruppenauswahl auf 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;" /> 
0

Die einzige Lösung, die ich kenne, besteht darin, ein verstecktes Dummy-Optionsfeld hinzuzufügen, das Sie auswählen, um alle anderen zu deaktivieren.

0

Funktioniert das nicht?

 function clearRadioSelection(theGroup) { 
     theGroup.selection.selected = false; 
     theGroup.selectedRadio = undefined; 
     theGroup.dispatchEvent({type:"change"}); 
    } 

theGroup ist die Radiobutton-Gruppe (nicht die einzelnen Radiobuttons) aus: http://kb2.adobe.com/cps/000/c4e4be2f.html

+0

Sorry, aber das hat alten Code sein. Es gibt keine "selectedRadio" -Eigenschaft und Ereignisse können nicht so gesendet werden. –

1

Sie könnten versuchen, alle Ihre Radio-Buttons Einstellung ein RadioButtonGroup dann RadioButtonGroup.selection gesetzt

auf null

Informationen zur Implementierung der RadioButtonGroup-Steuerung finden Sie unter http://livedocs.adobe.com/flex/3/langref/mx/controls/RadioButtonGroup.html#includeExamplesSummary.

+0

Ja, das funktioniert in einfachen Testanwendungen. Es funktioniert auch, um ausgewählte = false auf dem ausgewählten Radio-Button zu setzen. Aber ich habe Situationen erlebt, in denen keine dieser beiden Lösungen funktioniert. Es tut mir leid, so vage zu sein. Ich werde sehen, ob ich den Code ausgraben und eine Demo produzieren kann, wenn ich aus meinem Urlaub zurück bin. –

0

Ich glaube, dass Sie die RadioButtonGroup verwenden und alle Radiobutton-Steuerelemente für die Perticular-Gruppe binden.

So einfach Art und Weise:

private Funktion radioGroupReset(): void

{

radioGroup1.selection = null;

}

Dies sollte funktionieren!

0

Offensichtlich sind die bisherigen Antworten sollten Sie, wo Sie in der sauberste Weg gehen, aber Wenn Sie Ihren Kopf gegen die Wand schlagen, sammeln Sie einfach alle Ihre Optionsfelder in einer Komponente und zeichnen Sie dann die gesamte Komponente neu, wenn Sie sie löschen müssen. Problem gelöst.

Formulare sind bestenfalls gimpy. Keine Notwendigkeit, das Leben zu schwer zu machen.

0

Setzen Sie einfach die Eigenschaft selection der radioButtonGroup auf null, und es wird in den Ausgangszustand versetzt.

z.B, wenn

   <mx:RadioButtonGroup id="answers" /> 

dann die folgende Zeile in Action

   answers.selection = null; 

die Gruppe zurückgesetzt ohne Optionsfeld ausgewählt links würde zu schreiben. Hoffe es hilft dir. Ich nahm die Idee von folgendem Link. Viel Glück.

http://blog.flexexamples.com/2008/01/06/clearing-a-selected-radiobutton-control-in-flex/

Verwandte Themen