2009-07-06 41 views
7

在Flex中,有時當您需要清除表單時,會遇到單選按鈕組似乎無法清除的問題:儘可能地嘗試,在所有按鈕上設置selected = false,在該組上設置selection = null,同時執行,做了兩次,等等,你總是會看到一個仍然被選中的令人討厭的小單選按鈕。你如何解決這個問題,並將單選按鈕組恢復到其初始非選擇狀態?在Flex中,我如何取消選擇組中的所有單選按鈕?

回答

12

你需要將所有的單選按鈕爲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;" /> 
0

解決這個問題的唯一方法就是添加一個隱藏的虛擬單選按鈕,以便取消選擇所有其他按鈕。

0

這不行嗎?

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

theGroup是單選按鈕組(而不是單個單選按鈕) 來自:http://kb2.adobe.com/cps/000/c4e4be2f.html

+0

對不起,但那必須是舊代碼。沒有「selectedRadio」屬性,事件不能像這樣分派。 – 2009-07-06 16:04:03

1

你可以嘗試所有的單選按鈕設置爲RadioButtonGroup然後設置RadioButtonGroup.selection爲null

請參閱http://livedocs.adobe.com/flex/3/langref/mx/controls/RadioButtonGroup.html#includeExamplesSummary以瞭解如何實施RadioButtonGroup控件。

+0

是的,這適用於簡單的測試應用程序。它也可以在所選的單選按鈕上設置selected = false。但是我遇到了這兩種解決方案都不起作用的情況。 我很抱歉如此模糊。當我從假期回來時,我會看看是否可以挖掘代碼並製作演示。 – 2009-07-06 16:10:16

0

我相信你正在使用RadiobuttonGroup並綁定所有組的所有單選按鈕控件。

所以,簡單的方法:

私有函數radioGroupReset():無效

{

radioGroup1.selection = NULL;

}

這應該工作!

0

顯然,以前的答案應該把你帶到你在最乾淨的方式走,但如果您將頭靠在牆上,只需將所有單選按鈕收集到組件中,然後在需要清除組件時重新繪製整個組件。問題解決了。

無論如何,表格最好不過了。沒有必要讓生活太難。

相關問題