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 [ValidationProperty("Value")]
\r
17 public class HtmlInputText : HtmlInputControl, IPostBackDataHandler{
\r
19 private static readonly object EventServerChange = new object ();
\r
21 public HtmlInputText(string type):base(type){}
\r
22 public HtmlInputText():base("text"){}
\r
24 protected override void OnPreRender (EventArgs e)
\r
26 if (Events [EventServerChange] == null && !Disabled)
\r
27 ViewState.SetItemDirty("value",false);
\r
30 protected virtual void OnServerChange (EventArgs e)
\r
32 EventHandler handler = (EventHandler) Events [EventServerChange];
\r
33 if (handler != null) handler (this, e);
\r
36 protected override void RenderAttributes(HtmlTextWriter writer){
\r
37 //hide value when password box
\r
38 if (String.Compare (Type, "password",true) == 0)
\r
39 ViewState.Remove ("value");
\r
41 base.RenderAttributes(writer);
\r
44 bool IPostBackDataHandler.LoadPostData (string postDataKey,
\r
45 NameValueCollection postCollection)
\r
47 string currentValue = Value;
\r
48 string[] postedValue = postCollection.GetValues (postDataKey);
\r
49 if (!currentValue.Equals (postedValue)){
\r
50 Value = postedValue [0];
\r
56 void IPostBackDataHandler.RaisePostDataChangedEvent ()
\r
58 OnServerChange (EventArgs.Empty);
\r
61 [WebCategory("Action")]
\r
62 [WebSysDescription("Fires when the the text within the control changes.")]
\r
63 public event EventHandler ServerChange{
\r
65 Events.AddHandler(EventServerChange, value);
\r
68 Events.RemoveHandler(EventServerChange, value);
\r
73 [WebCategory("Behavior")]
\r
74 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
\r
75 public int MaxLength{
\r
77 string attr = (String) ViewState["maxlength"];
\r
78 if (attr != null) return Int32.Parse(attr, CultureInfo.InvariantCulture);
\r
82 Attributes["maxlength"] = AttributeToString(value);
\r
87 [WebCategory("Appearance")]
\r
88 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
\r
91 string attr = (String) ViewState["size"];
\r
92 if (attr != null) return Int32.Parse(attr, CultureInfo.InvariantCulture);
\r
96 Attributes["size"] = AttributeToString(value);
\r
100 public override string Value{
\r
102 string attr = Attributes["value"];
\r
103 if (attr != null) return attr;
\r
104 return String.Empty;
\r
107 Attributes["value"] = AttributeToString(value);
\r
111 } // class HtmlInputText
\r
112 } // namespace System.Web.UI.HtmlControls
\r