2 // System.Web.UI.WebControls.RadioButton.cs
5 // Gaurav Vaish (gvaish@iitk.ac.in)
6 // Andreas Nahr (ClassDevelopment@A-SoftTech.com)
8 // (C) Gaurav Vaish (2002)
9 // (C) 2003 Andreas Nahr
13 using System.Collections;
\r
14 using System.Collections.Specialized;
\r
15 using System.Globalization;
\r
17 using System.Web.UI;
\r
18 using System.ComponentModel;
19 using System.ComponentModel.Design;
\r
21 namespace System.Web.UI.WebControls
\r
23 [Designer ("System.Web.UI.Design.WebControls.CheckBoxDesigner, " + Consts.AssemblySystem_Design, typeof (IDesigner))]
\r
24 public class RadioButton : CheckBox, IPostBackDataHandler
\r
26 public RadioButton () : base ()
\r
30 [DefaultValue (""), WebCategory ("Behavior")]
31 [WebSysDescription ("The name of the group that this control belongs to.")]
\r
32 public virtual string GroupName
\r
35 object o = ViewState ["GroupName"];
\r
36 return (o == null) ? String.Empty : (string) o;
\r
39 set { ViewState ["GroupName"] = value; }
\r
42 protected override void OnPreRender (EventArgs e)
\r
44 base.OnPreRender (e);
\r
45 if (Page != null && Enabled && !Checked)
\r
46 Page.RegisterRequiresPostBack (this);
\r
48 if(GroupName.Length == 0)
\r
49 GroupName = UniqueID;
\r
52 internal override void RenderInputTag (HtmlTextWriter writer, string id)
\r
54 writer.AddAttribute (HtmlTextWriterAttribute.Id, id);
\r
55 writer.AddAttribute (HtmlTextWriterAttribute.Type, "radio");
\r
56 writer.AddAttribute (HtmlTextWriterAttribute.Name, UniqueGroupNamePrivate);
\r
57 writer.AddAttribute (HtmlTextWriterAttribute.Value, ValueAttributePrivate);
\r
60 writer.AddAttribute (HtmlTextWriterAttribute.Checked, "checked");
63 writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
66 writer.AddAttribute (HtmlTextWriterAttribute.Onclick,
\r
67 Page.GetPostBackClientEvent (this, ""));
\r
68 writer.AddAttribute ("language", "javascript");
\r
71 if (AccessKey.Length > 0)
\r
72 writer.AddAttribute (HtmlTextWriterAttribute.Accesskey, AccessKey);
\r
75 writer.AddAttribute (HtmlTextWriterAttribute.Tabindex,
\r
76 TabIndex.ToString (NumberFormatInfo.InvariantInfo));
\r
78 writer.RenderBeginTag (System.Web.UI.HtmlTextWriterTag.Input);
\r
79 writer.RenderEndTag ();
\r
82 private string UniqueGroupNamePrivate
\r
85 string retVal = GroupName;
\r
86 int unique = UniqueID.LastIndexOf (':');
\r
88 retVal += UniqueID.Substring (unique + 1);
\r
94 private string ValueAttributePrivate
\r
97 string retVal = Attributes ["value"];
\r
108 bool IPostBackDataHandler.LoadPostData (string postDataKey,
\r
109 NameValueCollection postCollection)
\r
111 bool _checked = Checked;
\r
112 if (postCollection [UniqueGroupNamePrivate] == ValueAttributePrivate){
\r
124 void IPostBackDataHandler.RaisePostDataChangedEvent ()
\r
126 OnCheckedChanged (EventArgs.Empty);
\r