2 // System.Web.UI.HtmlControls.HtmlControl.cs
\r
5 // Bob Smith <bob@thestuff.net>
\r
12 using System.ComponentModel;
13 using System.ComponentModel.Design;
\r
14 using System.Globalization;
\r
16 using System.Web.UI;
\r
18 namespace System.Web.UI.HtmlControls{
\r
21 [Designer ("System.Web.UI.Design.HtmlIntrinsicControlDesigner, " + Consts.AssemblySystem_Design, typeof (IDesigner))]
\r
22 public abstract class HtmlControl : Control, IAttributeAccessor
\r
24 internal string _tagName;
\r
25 private AttributeCollection _attributes;
\r
28 public HtmlControl() : this ("span") {}
\r
30 public HtmlControl(string tag)
\r
35 protected override ControlCollection CreateControlCollection ()
\r
37 return new EmptyControlCollection (this);
\r
40 internal static string AttributeToString(int n){
\r
41 if (n != -1)return n.ToString(NumberFormatInfo.InvariantInfo);
\r
45 internal static string AttributeToString(string s){
\r
46 if (s != null && s.Length != 0) return s;
\r
50 internal void PreProcessRelativeReference(HtmlTextWriter writer, string attribName){
\r
51 string attr = Attributes[attribName];
\r
53 if (attr.Length != 0){
\r
55 attr = ResolveUrl(attr);
\r
58 throw new HttpException(attribName + " property had malformed url");
\r
60 writer.WriteAttribute(attribName, attr);
\r
61 Attributes.Remove(attribName);
\r
66 string System.Web.UI.IAttributeAccessor.GetAttribute(string name){
\r
67 return Attributes[name];
\r
70 void System.Web.UI.IAttributeAccessor.SetAttribute(string name, string value){
\r
71 Attributes[name] = value;
\r
74 protected virtual void RenderBeginTag (HtmlTextWriter writer)
\r
76 writer.WriteBeginTag (TagName);
\r
77 RenderAttributes (writer);
\r
81 protected override void Render (HtmlTextWriter writer)
\r
83 RenderBeginTag (writer);
\r
86 protected virtual void RenderAttributes(HtmlTextWriter writer){
\r
88 writer.WriteAttribute("id",ClientID);
\r
90 Attributes.Render(writer);
\r
94 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
95 public AttributeCollection Attributes
\r
98 if (_attributes == null)
\r
99 _attributes = new AttributeCollection (ViewState);
\r
100 return _attributes;
\r
105 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
106 [WebCategory("Behavior")]
\r
107 public bool Disabled
\r
110 string disableAttr = Attributes["disabled"] as string;
111 return (disableAttr != null);
115 Attributes.Remove ("disabled");
117 Attributes["disabled"] = "disabled";
122 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
123 public CssStyleCollection Style
\r
125 get { return Attributes.CssStyle; }
\r
129 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
130 [WebCategory("Appearance")]
\r
131 public virtual string TagName
\r
133 get { return _tagName; }
\r
136 protected override bool ViewStateIgnoresCase
\r