2012-05-11 7 views
2

기본적으로 RadioButtonList가 수행하는 작업을 제어 (즉, 라디오 버튼을 별도로 유지)하지 않고 달성하고자합니다. 따라서 두 개의 일반 RadioButton (목록 ​​아님) 컨트롤을 페이지로 드래그했습니다. 두 라디오 단추는 AutoPostback = true로 설정됩니다.다른 라디오 버튼의 "CheckedChanged"이벤트에서 다른 라디오 버튼 선택 취소

나는 다음과 같은 두 개의 이벤트 핸들러를 사용하여 시도 : radio1는 사용자가 클릭하면

protected void radio1_CheckedChanged(object sender, EventArgs e) 
{ 
    radio2.Checked = false; 
} 

protected void radio2_CheckedChanged(object sender, EventArgs e) 
{ 
    radio1.Checked = false; 
} 

그래서이 기대하는 것, radio2은 취소해야한다. 이것은 일어나지 않습니다. 아무런 오류나 문제가 없습니다. 나는 계단을 밟아 라디오 버튼 하나를 실제로 선택했을 때 이벤트가 시작된다는 것을 알았습니다. 그리고 다른 라디오 버튼의 .Checked 상태를 false로 변경합니다. 그러나 페이지에서 시각적으로 두 라디오 단추가 계속 선택되어 있습니다. (다시 게시 문제와 같은 것처럼 보입니다.하지만 그렇지 않습니다.) 나는 RadioButtonList 컨트롤을 사용할 수 없습니다


이유는 페이지의 다른 옵션을 주어, 나는 특정 라디오 버튼의 선택을 해제 할 필요가 있다는 것입니다. 예를 들어, 드롭 다운 목록에서 A 항목을 선택하면 radio1이 비활성화되어 선택 항목이 아닌 항목 B를 선택하면 radio1이 다시 활성화되고 radio2는 비활성화됩니다.

답변

4

이렇게하려면 서버 측 이벤트가 필요하지 않습니다.

<asp:RadioButton ID="RadioButton1" GroupName = "a" runat="server" /> 
<asp:RadioButton ID="RadioButton2" GroupName = "a" runat="server" /> 
<asp:RadioButton ID="RadioButton3" GroupName = "a" runat="server" /> 
+0

작동 ... - 라디오 버튼의 를 사용하여 그룹 이름 속성과 같은 groupName을 처럼 아래에있는 모든 라디오 버튼을 계속 나는 지금 어리 석다, 웃음을 느낀다. 놀랄 만한! + 평판 포인트! – CptSupermrkt

0

난 그냥 다른 라디오 버튼이 선택되어 있는지 검사를 추가하고이

private void radioButton1_CheckedChanged(object sender, EventArgs e) 
    { 
     if (radioButton1.Checked) 
     radioButton2.Checked = false; 
    } 

    private void radioButton2_CheckedChanged(object sender, EventArgs e) 
    { 
     if (radioButton2.Checked) 
     radioButton1.Checked = false; 
    } 
관련 문제