1 /* System.Web.UI.HtmlControls
\r
3 * Leen Toelen (toelen@hotmail.com)
\r
9 using System.ComponentModel;
\r
10 using System.Globalization;
\r
11 using System.Collections.Specialized;
\r
13 namespace System.Web.UI.HtmlControls{
\r
15 [DefaultEvent("ServerChange")]
\r
16 [ValidationProperty("Value")]
\r
17 public class HtmlTextArea : HtmlContainerControl, IPostBackDataHandler{
\r
19 private static readonly object EventServerChange = new object ();
\r
21 public HtmlTextArea(): base("textarea"){}
\r
24 [WebCategory("Appearance")]
\r
25 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
\r
28 string attr = Attributes["cols"];
\r
30 return Int32.Parse(attr, CultureInfo.InvariantCulture);
\r
35 Attributes["cols"] = AttributeToString(value);
\r
40 [WebCategory("Appearance")]
\r
41 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
\r
44 string attr = Attributes["rows"];
\r
46 return Int32.Parse(attr, CultureInfo.InvariantCulture);;
\r
51 Attributes["rows"] = AttributeToString(value);
\r
56 [WebCategory("Appearance")]
\r
57 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
\r
58 public string Value{
\r
68 [WebCategory("Behavior")]
\r
69 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
\r
70 public virtual string Name{
\r
72 if (UniqueID != null){
\r
75 return String.Empty;
\r
80 [WebCategory("Action")]
\r
81 [WebSysDescription("Fires when the text within the control changes.")]
\r
82 public event EventHandler ServerChange{
\r
84 Events.AddHandler(EventServerChange, value);
\r
87 Events.RemoveHandler(EventServerChange, value);
\r
91 protected virtual void OnServerChange(EventArgs e){
\r
92 EventHandler handler;
\r
93 handler = (EventHandler) Events[EventServerChange];
\r
94 if(handler != null){
\r
95 handler.Invoke(this, e);
\r
99 bool IPostBackDataHandler.LoadPostData (string postDataKey,
\r
100 NameValueCollection postCollection)
\r
102 string currentValue = Value;
\r
103 string postedValue = postCollection[postDataKey];
\r
104 if (!currentValue.Equals(postedValue) && currentValue != null){
\r
105 Value = HttpUtility.HtmlEncode(postedValue);
\r
111 protected override void RenderAttributes(HtmlTextWriter writer){
\r
112 writer.WriteAttribute("name", Name);
\r
113 Attributes.Remove("name");
\r
114 base.RenderAttributes(writer);
\r
117 void IPostBackDataHandler.RaisePostDataChangedEvent ()
\r
119 OnServerChange (EventArgs.Empty);
\r
122 protected override void OnPreRender(EventArgs e){
\r
123 if(Events[EventServerChange]==null || Disabled){
\r
124 ViewState.SetItemDirty("value",false);
\r
128 protected override void AddParsedSubObject(object obj){
\r
129 if (obj is LiteralControl || obj is DataBoundLiteralControl)
\r
130 AddParsedSubObject(obj);
\r
132 throw new NotSupportedException("HtmlTextArea cannot have children of Type " + obj.GetType().Name);
\r
135 } // class HtmlTextArea
\r
136 } // namespace System.Web.UI.HtmlControls
\r