(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / System.Web / System.Web.UI.HtmlControls / HtmlInputRadioButton.cs
blob8367374ec4ca6de3a30a5d4b89cbe5a61b241e1d
1 /* System.Web.UI.HtmlControls
2 * Authors
3 * Leen Toelen (toelen@hotmail.com)
4 */
6 using System;
7 using System.Collections.Specialized;
8 using System.ComponentModel;
9 using System.Globalization;
10 using System.Web;
11 using System.Web.UI;
13 namespace System.Web.UI.HtmlControls{
15 [DefaultEvent("ServerChange")]
16 public class HtmlInputRadioButton : HtmlInputControl, IPostBackDataHandler{
18 private static readonly object EventServerChange = new object ();
20 public HtmlInputRadioButton(): base("radio"){}
22 protected override void OnPreRender(EventArgs e){
23 if (Page != null && !Disabled){
24 Page.RegisterRequiresPostBack(this);
26 if (Events[EventServerChange] != null && !Disabled){
27 ViewState.SetItemDirty("checked", false);
31 protected virtual void OnServerChange(EventArgs e){
32 EventHandler handler = (EventHandler) Events[EventServerChange];
33 if (handler != null){
34 handler (this, e);
38 protected override void RenderAttributes(HtmlTextWriter writer){
39 writer.WriteAttribute("value", Value);
40 Attributes.Remove("value");
41 base.RenderAttributes(writer);
44 bool IPostBackDataHandler.LoadPostData (string postDataKey,
45 NameValueCollection postCollection)
47 string postValue = postCollection [Name];
48 bool myBool = false;
49 if (postValue != null && postValue.Equals (Value)) {
50 if (!Checked) {
51 Checked = true;
52 myBool = true;
54 } else {
55 if (Checked) {
56 Checked = false;
57 myBool = false;
60 return myBool;
63 void IPostBackDataHandler.RaisePostDataChangedEvent ()
65 OnServerChange (EventArgs.Empty);
68 [WebCategory("Action")]
69 [WebSysDescription("Fires when the checked state of the control changes.")]
70 public event EventHandler ServerChange{
71 add{
72 Events.AddHandler(EventServerChange, value);
74 remove{
75 Events.RemoveHandler(EventServerChange, value);
79 [DefaultValue("")]
80 [WebCategory("Misc")]
81 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
82 public bool Checked{
83 get{
84 string attr = Attributes["checked"];
85 if (attr != null){
86 return attr.Equals("checked");
88 return false;
90 set{
91 if (value)
92 Attributes["checked"] = "checked";
93 else
94 Attributes.Remove ("checked");
97 public override string Name
99 get {
100 string attr = Attributes ["name"]; // Gotta use "name" to group radio buttons
101 return (attr == null) ? String.Empty : attr;
103 set { Attributes ["name"] = value; }
106 internal override string RenderedName{
107 get{
108 string attr = base.RenderedName;
109 string id = UniqueID;
110 int indexOfX = id.LastIndexOf('X');
111 if (indexOfX != 0 && indexOfX >= 0){
112 attr = String.Concat(attr, id.Substring(0,indexOfX+1));
114 return attr;
118 public override string Value
120 get {
121 string v = Attributes ["value"];
122 if (v != null && v != "")
123 return v;
124 v = ID;
125 Attributes ["value"] = v;
126 return v;
129 set { Attributes ["value"] = value; }
132 } // class HtmlInputRadioButton
133 } // namespace System.Web.UI.HtmlControls