+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.
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
\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
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
\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
-/* 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
+
+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
_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)