2002-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Thu, 6 Jun 2002 11:38:30 +0000 (11:38 -0000)
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Thu, 6 Jun 2002 11:38:30 +0000 (11:38 -0000)
* System.Web.UI/Page.cs: for each child control to render, assign
Control.Page. Probably also needed in HtmlContainerControl derived
classes.

* System.Web.UI.HtmlControls/HtmlControl.cs: Render contents moved to
new RenderBeginTag method, defined in MS docs.

* System.Web.UI.HtmlControls/HtmlForm.cs: Render output when no IE
browser.

* System.Web.UI.HtmlControls/HtmlInputButton.cs: added constructor
without arguments. Xsp used it, though now it always use the other
.ctor.

* System.Web.UI.HtmlControls/HtmlInputControl.cs: cosmetic changes and
implemented set_Name.

svn path=/trunk/mcs/; revision=5135

mcs/class/System.Web/System.Web.UI.HtmlControls/ChangeLog
mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlControl.cs
mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlForm.cs
mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlInputButton.cs
mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlInputControl.cs
mcs/class/System.Web/System.Web.UI/ChangeLog
mcs/class/System.Web/System.Web.UI/Page.cs

index d5a0b7868df70b4c1c9aef5cffd859ebf01a1d96..a8298ec24d29097ddbbe30bac3c495cdf556c36d 100644 (file)
@@ -1,3 +1,15 @@
+2002-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * HtmlControl.cs: Render contents moved to new RenderBeginTag method,
+       defined in MS docs. 
+       
+       * HtmlForm.cs: Render output when no IE browser.
+
+       * HtmlInputButton.cs: added constructor without arguments. Xsp used it, 
+       though now it always use the other .ctor.
+       
+       * HtmlInputControl.cs: cosmetic changes and implemented set_Name.
+
 2002-06-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
 
        * HtmlButton.cs: RenderAttributes is an override, not new.
index aa3f19f2ae3c5e925f414d742f3ae4f62f418188..4907fabd9fd8858bd1ce5bc5374cb37cc579fbb7 100644 (file)
@@ -63,12 +63,17 @@ namespace System.Web.UI.HtmlControls{
                        Attributes[name] = value;\r
                }\r
                \r
-               protected override void Render (HtmlTextWriter writer)\r
+               protected virtual void RenderBeginTag (HtmlTextWriter writer)\r
                {\r
                        writer.WriteBeginTag (TagName);\r
                        RenderAttributes (writer);\r
                        writer.Write ('>');\r
                }\r
+\r
+               protected override void Render (HtmlTextWriter writer)\r
+               {\r
+                       RenderBeginTag (writer);\r
+               }\r
                \r
                protected virtual void RenderAttributes(HtmlTextWriter writer){\r
                        if (ID != null){\r
@@ -79,35 +84,23 @@ namespace System.Web.UI.HtmlControls{
                \r
                public AttributeCollection Attributes\r
                {\r
-                       get\r
-                       {\r
-                               return _attributes;\r
-                       }\r
+                       get { return _attributes; }\r
                }\r
+\r
                public bool Disabled\r
                {\r
-                       get\r
-                       {\r
-                               return _disabled;\r
-                       }\r
-                       set\r
-                       {\r
-                               _disabled = value;\r
-                       }\r
+                       get { return _disabled; }\r
+                       set { _disabled = value; }\r
                }\r
+\r
                public CssStyleCollection Style\r
                {\r
-                       get\r
-                       {\r
-                               return _attributes.CssStyle;\r
-                       }\r
+                       get { return _attributes.CssStyle; }\r
                }\r
+\r
                public virtual string TagName\r
                {\r
-                       get\r
-                       {\r
-                               return _tagName;\r
-                       }\r
+                       get { return _tagName; }\r
                }\r
        }\r
 }\r
index 8b670da189efa10bc1e797956ae56f4097fd980c..70d3bb547559934f8a84be6599717bddb427ff3a 100644 (file)
@@ -38,22 +38,24 @@ namespace System.Web.UI.HtmlControls{
                        base.RenderAttributes(writer);\r
                }\r
                \r
-               //TODO: adapt code for non-IE browsers\r
                protected override void Render(HtmlTextWriter output){\r
-                       if (Page.SmartNavigation == true){\r
-                               ((IAttributeAccessor) this).SetAttribute("_smartNavigation","true");\r
-                               HttpBrowserCapabilities browserCap = Context.Request.Browser;\r
-                               if (browserCap.Browser.ToLower() != "ie" && browserCap.MajorVersion < 5){\r
-                                       base.Render(output);\r
-                                       return;\r
-                               }\r
-                               output.WriteLine("<IFRAME ID=_hifSmartNav NAME=_hifSmartNav STYLE=display:none ></IFRAME>");\r
-                               \r
-                               if (browserCap.MinorVersion < 0.5 && browserCap.MajorVersion != 5)\r
-                                       Page.RegisterClientScriptFile("SmartNavIncludeScript","JScript","SmartNavIE5.js");\r
-                               else if (Page.IsPostBack) Page.RegisterClientScriptFile("SmartNavIncludeScript","JScript","SmartNav.js");\r
+                       if (Page.SmartNavigation == false){\r
+                               base.Render (output);\r
+                               return;\r
+                       }\r
+\r
+                       ((IAttributeAccessor) this).SetAttribute("_smartNavigation","true");\r
+                       HttpBrowserCapabilities browserCap = Context.Request.Browser;\r
+                       if (browserCap.Browser.ToLower() != "ie" && browserCap.MajorVersion < 5){\r
                                base.Render(output);\r
+                               return;\r
                        }\r
+                       output.WriteLine("<IFRAME ID=_hifSmartNav NAME=_hifSmartNav STYLE=display:none ></IFRAME>");\r
+                               \r
+                       if (browserCap.MinorVersion < 0.5 && browserCap.MajorVersion != 5)\r
+                               Page.RegisterClientScriptFile("SmartNavIncludeScript","JScript","SmartNavIE5.js");\r
+                       else if (Page.IsPostBack) Page.RegisterClientScriptFile("SmartNavIncludeScript","JScript","SmartNav.js");\r
+                       base.Render(output);\r
                }\r
                \r
                protected override void RenderChildren(HtmlTextWriter writer){\r
index 48be001756c0a81cd8db4e6c8e60e2ded3a04168..d9e371a7f8ac5e499ac616a2649c686543c5ff88 100755 (executable)
@@ -14,6 +14,10 @@ namespace System.Web.UI.HtmlControls{
                \r
                private static readonly object EventServerClick;\r
                \r
+               public HtmlInputButton(): base ("button")\r
+               {\r
+               }\r
+               \r
                public HtmlInputButton(string type): base(type){}\r
                \r
                protected void OnServerClick(EventArgs e){\r
index 5c5010d4451c81fb1bf656b01e75877d497a366f..56b7759040e117ec843e8ce48630db8ca762033c 100755 (executable)
@@ -1,63 +1,60 @@
-/*     System.Web.UI.HtmlControls\r
-*      Authors\r
-*              Leen Toelen (toelen@hotmail.com)\r
-*/\r
-\r
-using System;\r
-using System.Web;\r
-using System.Web.UI;\r
-using System.Globalization;\r
-\r
-namespace System.Web.UI.HtmlControls{\r
-       \r
-       public class HtmlInputControl : HtmlControl{\r
-               \r
-               public HtmlInputControl(string type):base("type"){\r
-                       Attributes["type"] = type;\r
-               }\r
-               \r
-               protected virtual new void RenderAttributes(HtmlTextWriter writer){\r
-                       writer.WriteAttribute("name",RenderedName);\r
-                       Attributes.Remove("name");\r
-                       base.RenderAttributes(writer);\r
-                       writer.Write(" /");\r
-               }\r
-               \r
-               public string Name{\r
-                       get{\r
-                               return UniqueID;\r
-                       }\r
-                       set{}\r
-               }\r
-               \r
-               protected virtual string RenderedName{\r
-                       get{\r
-                               return Name;\r
-                       }\r
-               }\r
-               \r
-               public string Type{\r
-                       get{\r
-                               string attr = Attributes["type"];\r
-                               if (attr != null){\r
-                                       return attr;\r
-                               }\r
-                               return String.Empty;\r
-                       }\r
-               }\r
-               \r
-               public virtual string Value{\r
-                       get{\r
-                               string attr = Attributes["value"];\r
-                               if (attr != null){\r
-                                       return attr;\r
-                               }\r
-                               return String.Empty;\r
-                       }\r
-                       set{\r
-                               Attributes["value"] = AttributeToString(value);\r
-                       }\r
-               }\r
-       } // class HtmlInputControl\r
-} // namespace System.Web.UI.HtmlControls\r
-\r
+/*     System.Web.UI.HtmlControls
+*      Authors
+*              Leen Toelen (toelen@hotmail.com)
+*/
+
+using System;
+using System.Web;
+using System.Web.UI;
+using System.Globalization;
+
+namespace System.Web.UI.HtmlControls
+{
+       
+       public class HtmlInputControl : HtmlControl
+       {
+               
+               public HtmlInputControl (string type) : base ("type")
+               {
+                       Attributes ["type"] = type;
+               }
+               
+               protected override void RenderAttributes (HtmlTextWriter writer)
+               {
+                       writer.WriteAttribute ("name",RenderedName);
+                       Attributes.Remove ("name");
+                       base.RenderAttributes (writer);
+                       writer.Write (" /");
+               }
+               
+               public virtual string Name
+               {
+                       get { return UniqueID; }
+                       set { ID = value; } // Is this ok?
+               }
+               
+               protected virtual string RenderedName
+               {
+                       get { return Name; }
+               }
+               
+               public string Type
+               {
+                       get {
+                               string _type = Attributes ["type"];
+                               return ((_type != null) ? _type : String.Empty);
+                       }
+               }
+               
+               public virtual string Value
+               {
+                       get {
+                               string attr = Attributes ["value"];
+                               return ((attr != null) ? attr : String.Empty);
+                       }
+
+                       set { Attributes["value"] = value; }
+               }
+       } // class HtmlInputControl
+} // namespace System.Web.UI.HtmlControls
+
index 3a7953eec6b65174d3c1bee5d85e713d3c0e0b0b..0e6018a25e33739cf081692794a3a285f8b0348f 100644 (file)
@@ -1,3 +1,8 @@
+2002-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * Page.cs: for each child control to render, assign Control.Page.
+       Probably also needed in HtmlContainerControl derived classes.
+       
 2002-06-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
 
        * AttributeCollection.cs: don't need a Hastable. StateBag now works 
index 6569f8d81117a8bf60d97ce3c45944e721ec1deb..397c37e4af1735f899d262346fd00c2e723faf79 100755 (executable)
@@ -384,8 +384,12 @@ public class Page : TemplateControl, IHttpHandler
                _context = context;
                HtmlTextWriter output = new HtmlTextWriter (context.Response.Output);
                
-               foreach (Control ctrl in Controls)
+               foreach (Control ctrl in Controls){
+                       // Assing Control.Page here. Controls should do the same before 
+                       // rendering their children
+                       ctrl.Page = this;
                        ctrl.RenderControl (output);
+               }
        }
 
        protected virtual void RaisePostBackEvent (IPostBackEventHandler sourceControl, string eventArgument)