2010-07-22 101 views
2

所以我有三個RadioButton,它們不在RadioButtonList中,因爲我需要在它們每個旁邊添加一些文本框。Group(GroupName)中的Radiobutton全部被檢查

我已經添加了一個GroupName,並且在前端它們的行爲如預期。只有一個出現在一次檢查。

但是在代碼中,如果我這樣做:

RadioButton1.Checked = true; 
RadioButton2.Checked = true; 
RadioButton3.Checked = true; 

我希望只有最後一次,RadioButton3,進行檢查,因爲它們都屬於同一個組。不是這種情況。所有三個評估爲真....這怎麼可能?

我必須明確地將它們設置爲false ...我錯過了什麼嗎?

回答

1

我認爲這是正確的行爲,雖然它不是你所期望的。

考慮一個RadioButton只是一個CheckBox與一些擴展功能自動給予獨家檢查功能。在後臺它仍然是一個複選框。從MSDN見層次:

System.Object 
    System.Web.UI.Control 
     System.Web.UI.WebControls.WebControl 
      System.Web.UI.WebControls.CheckBox 
       System.Web.UI.WebControls.RadioButton 

輸出與屬性checked="checked"輸出的type="radio"input所有項目。例如:

<input id="rad1" type="radio" name="Test" value="rad1" checked="checked" /><label for="rad1">1</label><br /> 
<input id="rad2" type="radio" name="Test" value="rad2" checked="checked" /><label for="rad2">2</label><br /> 
<input id="rad3" type="radio" name="Test" value="rad3" checked="checked" /><label for="rad3">3</label> 

Checked屬性documenation:

經過(從複選框繼承): 獲取或設置指示 複選框控件是否是 檢查的值。

所以Checked財產的行爲就像CheckBox版本不包括尋找其他控件在同一組,並刪除他們這是有道理的,因爲它是一個單一的控制功能。

+0

非常感謝您的快速和準確的響應隊友!這就解釋了爲什麼它會以這種方式行事,但我很驚訝它不會在後端兌現GroupName,當它在前端執行時... 也許我使用了錯誤的屬性......你認爲我應該使用「檢查」(考慮它的行爲像複選框而不是單選按鈕 - 即使根據文檔)?我期待看到一個名爲「Selected」的屬性,但它不存在.... hmmm ..... – 2010-07-22 06:15:05

+1

@Ev是的,你應該使用checked屬性,但是你可以很容易地編寫一個函數來模仿服務器端行爲在頁面級別,然後只是自動將所有內容切換爲false,然後設置您要檢查的'RadioButton'。 – Kelsey 2010-07-22 07:09:10

相關問題