2009-07-06 13 views
7

W środowisku Flex, czasami, gdy trzeba wyczyścić formularz, napotkasz problem, że grupy przycisków radiowych zdają się nie uwzględniać czyszczenia: spróbuj tak, jak możesz, ustawiając selected = false na wszystkich przyciskach, ustawiając wybór = null w grupie, wykonując obie , robiąc je dwa razy itd., zawsze wydaje się, że kończy się z jednym nieznośnym małym przyciskiem, który wciąż jest wybrany. Jak rozwiązać ten problem i przywrócić grupę przycisków radiowych do początkowego stanu braku wyboru?W programie Flex, jak wyłączyć zaznaczenie wszystkich przycisków opcji w grupie?

Odpowiedz

12

Trzeba grupie wszystkich przycisków radiowych w RadioButtonGroup a następnie ustawić wybór grupy 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

Jedynym sposobem na rozwiązanie tego, o którym wiem, jest dodanie ukrytego atrapa, które wybrałeś, aby odznaczyć wszystkie pozostałe.

0

Czy to nie działa?

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

theGroup jest grupa przycisku radiowego (nie poszczególne przyciski radiowe) od: http://kb2.adobe.com/cps/000/c4e4be2f.html

+0

Przepraszam, ale to musi być stary kod. Nie ma właściwości "selectedRadio", a zdarzenia nie mogą być wywoływane w ten sposób. –

1

Można spróbować ustawienie wszystkich przycisków radiowych do RadioButtonGroup następnie ustawić RadioButtonGroup.selection null

Zobacz http://livedocs.adobe.com/flex/3/langref/mx/controls/RadioButtonGroup.html#includeExamplesSummary, aby uzyskać informacje na temat implementacji kontrolki RadioButtonGroup.

+0

Tak, działa to w prostych aplikacjach testowych. Działa również w celu ustawienia selected = false na wybranym przycisku radiowym. Ale natknąłem się na sytuacje, w których żadne z tych dwóch rozwiązań nie działa. Przykro mi, że jestem tak nieokreślony. Zobaczę, czy uda mi się wykopać kod i stworzyć demo, gdy wrócę z wakacji. –

0

Wierzę, że korzystasz z RadiobuttonGroup i wiążisz wszystkie elementy sterowania radiowego dla grupy pertikularnej.

więc łatwy sposób:

private function radioGroupReset(): void

{

radioGroup1.selection = null;

}

To powinno zadziałać!

0

Oczywiście wcześniejsze odpowiedzi powinny cię, dokąd idziesz w najczystszy sposób, ale jeśli uderzasz głową o ścianę, po prostu zbierz wszystkie przyciski opcji, a następnie przerysuj cały komponent, gdy chcesz go wyczyścić. Problem rozwiązany.

Formy w najlepszym przypadku są w najlepszym przypadku. Nie ma potrzeby, aby życie było zbyt trudne.

0

Po prostu ustaw właściwość selekcji grupy radioButton na wartość null i przejdzie ona do stanu początkowego.

przykład, jeśli

   <mx:RadioButtonGroup id="answers" /> 

następnie pisanie następujący wiersz w języku ActionScript

   answers.selection = null; 

by przywrócić grupie bez przycisku radiowego wybranego lewo. Mam nadzieję, że ci to pomoże. Podjąłem pomysł z następującego linku. Powodzenia.

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

Powiązane problemy