ASP.NETでのラジオボタン コントロールの作成

開発日記に書いた内容の転記。

ASP.NETラジオボタンをリスト データバインドする要素内のテンプレートに書くと、各要素ごとにグルーピング範囲が作成されてしまう。
アンケート項目のリストのように、この挙動がふさわしい場合もたまにはあるのだが、よくある例としてリスト展開した要素を選択するためにラジオボタンを使うという用途には対応できない。

AAA ◎1 ○2 ○3
BBB ○1 ○2 ◎3
CCC ○1 ◎2 ○3

こういうやつならいいけど…

◎AAA xxx
○BBB xxx
○CCC xxx

こうしたいのに…

◎AAA xxx
○BBB xxx
◎CCC xxx

こうなってしまう。

で、Literalを使用してinputエレメントを描画するという提案をしてみたのだが、やはり相当に難しいため素人にはオススメできない。できない以上、何らかのコントロール化するのがいいのではないかと思った。やる前は、ポストバック時に状態を更新するのが難しそうだと思ったが、やってみると案外簡単だった。
OverItemRadio.cs