注意:
http://d.hatena.ne.jp/NAL-6295/20060726
にて再度改訂済みです
表題の通りですが、
RadioButtonコントロールを継承して、以下のコードを書くと
グループ化できるし、ポストバック時にCheckedプロパティも
正常に動作します。
というエントリで掲載したサンプルは、デザイン時に描画エラーが出てしまう問題が発生していました。(勿論、実行時には使える)
そこで、今回、その制限を回避することが可能になりましたので、新しくサンプルを公開します。
過去に、先のエントリを参照された方は、こちらに置き換えると良いかもしれません。
001 Imports System.ComponentModel 002 Imports System.Web.UI 003 004 005 <DefaultProperty("Checked"), ToolboxData("<{0}:RadioButtonEx runat=server></{0}:RadioButtonEx>")> _ 006 Public Class RadioButtonEx 007 Inherits System.Web.UI.WebControls.RadioButton 008 009 Public Overrides ReadOnly Property UniqueID() As String 010 Get 011 If Me.GroupName Is Nothing OrElse Me.GroupName.Length = 0 Then 012 Return MyBase.UniqueID 013 Else 014 Return Me.GroupName() 015 End If 016 End Get 017 End Property 018 019 Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs) 020 Me.Attributes.Add("value", MyBase.UniqueID) 021 MyBase.OnPreRender(e) 022 End Sub 023 024 Protected Overrides Sub OnInit(ByVal e As System.EventArgs) 025 MyBase.OnInit(e) 026 If Me.Page.IsPostBack Then 027 Me.Checked = MyBase.UniqueID = Me.Page.Request.Form.Item(Me.GroupName) 028 End If 029 End Sub 030 End Class 031 032