1 /* System.Web.UI.HtmlControls
\r
3 * Leen Toelen (toelen@hotmail.com)
\r
7 using System.Collections.Specialized;
\r
8 using System.ComponentModel;
\r
9 using System.Globalization;
\r
11 using System.Web.UI;
\r
13 namespace System.Web.UI.HtmlControls{
\r
15 [DefaultEvent("ServerChange")]
\r
16 public class HtmlInputCheckBox : HtmlInputControl, IPostBackDataHandler{
\r
18 private static readonly object EventServerChange = new object ();
\r
20 public HtmlInputCheckBox(): base("checkbox"){}
\r
22 bool IPostBackDataHandler.LoadPostData (string postDataKey,
\r
23 NameValueCollection postCollection)
\r
25 string postValue = postCollection [postDataKey];
\r
26 bool postChecked = false;
\r
27 bool retval = false;
\r
29 if (postValue != null)
\r
30 postChecked = postValue.Length > 0;
\r
32 if (Checked != postChecked){
\r
34 Checked = postChecked;
\r
40 void IPostBackDataHandler.RaisePostDataChangedEvent ()
\r
42 OnServerChange (EventArgs.Empty);
\r
45 protected virtual void OnServerChange(EventArgs e){
\r
46 EventHandler handler = (EventHandler) Events[EventServerChange];
\r
47 if (handler != null)
\r
51 protected override void OnPreRender(EventArgs e){
\r
52 if (Page != null && !Disabled)
\r
53 Page.RegisterRequiresPostBack(this);
\r
54 if (Events[EventServerChange] != null && !Disabled)
\r
55 ViewState.SetItemDirty("checkbox",false);
\r
58 [WebCategory("Action")]
\r
59 [WebSysDescription("Fires when the checked satte of the control is changed.")]
\r
60 public event EventHandler ServerChange{
\r
62 Events.AddHandler(EventServerChange, value);
\r
65 Events.RemoveHandler(EventServerChange, value);
\r
70 [WebCategory("Misc")]
\r
71 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
\r
72 public bool Checked{
\r
74 string attr = Attributes["checked"];
\r
76 return attr.Equals("checked");
\r
80 Attributes["checked"] = (value == true)? "checked": null;
\r
84 } // class HtmlInputCheckBox
\r
85 } // namespace System.Web.UI.HtmlControls
\r