私は基本的に、そのコントロールを使用せずに、RadioButtonList が行うことを実現したいと考えています (つまり、ラジオ ボタンを分離したままにします)。そこで、2 つの通常の RadioButton (リストではない) コントロールをページにドラッグしました。両方のラジオ ボタンが AutoPostback=true に設定されています。
次の 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 が無効になります。