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
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;" />
Jedynym sposobem na rozwiązanie tego, o którym wiem, jest dodanie ukrytego atrapa, które wybrałeś, aby odznaczyć wszystkie pozostałe.
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
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
.
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. –
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ć!
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.
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/
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. –