2012-05-11 22 views
2

ラジオボタンボタンを何もしないで、そのコントロールを使わずにラジオボタンを分離したままにします。そこで、私は2つの通常のRadioButton(リストではない)コントロールをページにドラッグしました。両方のラジオボタンがAutoPostback = trueに設定されています。他のラジオボタンの「CheckedChanged」イベントから他のラジオボタンを選択解除する

私は、次の2つのイベントハンドラを使用してみました:

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

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

だから私は何を期待Radio1のがユーザによってクリックされた場合、radio2はオフにする必要があり、です。これは起こりません。エラーや何もありません。私は一歩踏み出して、実際にラジオボタンの1つが選択されると、そのイベントは発砲していることに気付きました。そして、他のラジオボタンの.Checkedステータスをfalseに変更します。しかし、ページ上で視覚的に両方のラジオボタンがチェックされています。 (ポストバック問題のように思える、私は知っているが、そうではない)。私は、RadioButtonListコントロールを使用することはできません


理由は、ページ上の他のオプションを考えると、私は特定のラジオボタンの選択肢を無効にする必要があり、ということです。たとえば、ドロップダウンリストの項目Aを選択するとradio1が無効になるため、選択項目ではなく、項目Bを選択するとradio1が再び有効になり、radio2は無効になります。

答えて

4

これを達成するためにサーバー側のイベントは必要ありません。 ラジオボタンの使用はGroupName属性と同じグループ名 同様の下ですべてのラジオボタンを保つ -

<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

に動作されているかどうかのチェックを追加...私は今、愚かな気がする。素晴らしい! +あなたの評判のポイント! – 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; 
    } 
関連する問題