1 /* System.Web.UI.HtmlControls
\r
3 * Leen Toelen (toelen@hotmail.com)
\r
7 using System.Collections;
\r
8 using System.ComponentModel;
\r
10 using System.Web.UI;
\r
11 using System.Web.Util;
\r
13 namespace System.Web.UI.HtmlControls{
\r
15 public class HtmlForm : HtmlContainerControl{
\r
18 //private static string SmartNavIncludeScriptKey = "SmartNavIncludeScript";
\r
20 public HtmlForm(): base("form"){}
\r
22 protected override void RenderAttributes(HtmlTextWriter writer){
\r
23 writer.WriteAttribute("name", Name);
\r
24 Attributes.Remove("name");
\r
25 writer.WriteAttribute("method", Method);
\r
26 Attributes.Remove("method");
\r
27 writer.WriteAttribute("action", Action, true);
\r
28 Attributes.Remove("action");
\r
29 if (Enctype != null){
\r
30 writer.WriteAttribute ("enctype", Enctype);
\r
31 Attributes.Remove ("enctype");
\r
34 string submitStatements = Page.ClientScript.WriteSubmitStatements ();
\r
35 if (submitStatements != null) {
\r
36 string prev = Attributes ["onsubmit"];
\r
38 submitStatements = prev + submitStatements;
\r
39 Attributes.Remove ("onsubmit");
\r
42 writer.WriteAttribute ("language", "javascript");
\r
43 writer.WriteAttribute ("onsubmit", submitStatements);
\r
47 writer.WriteAttribute ("id", ClientID);
\r
49 base.RenderAttributes (writer);
\r
52 protected override void Render(HtmlTextWriter output){
\r
53 /*** Disabled smart navigation. We have no scripts - Gonzalo
\r
54 if (Page.SmartNavigation == false){
\r
55 base.Render (output);
\r
59 ((IAttributeAccessor) this).SetAttribute("_smartNavigation","true");
\r
60 HttpBrowserCapabilities browserCap = Context.Request.Browser;
\r
61 if (browserCap.Browser.ToLower() != "ie" && browserCap.MajorVersion < 5){
\r
62 base.Render(output);
\r
65 output.WriteLine("<IFRAME ID=_hifSmartNav NAME=_hifSmartNav STYLE=display:none ></IFRAME>");
\r
67 if (browserCap.MinorVersion < 0.5 && browserCap.MajorVersion != 5)
\r
68 Page.RegisterClientScriptFile("SmartNavIncludeScript","JScript","SmartNavIE5.js");
\r
69 else if (Page.IsPostBack) Page.RegisterClientScriptFile("SmartNavIncludeScript","JScript","SmartNav.js");
\r
71 base.Render(output);
\r
74 protected override void RenderChildren (HtmlTextWriter writer)
\r
76 Page.OnFormRender (writer,ClientID);
\r
77 base.RenderChildren (writer);
\r
78 Page.OnFormPostRender (writer,ClientID);
\r
81 protected override void OnInit(EventArgs e){
\r
83 Page.RegisterViewStateHandler();
\r
85 Page.RegisterForm (this);
\r
89 internal string Action {
\r
91 string executionFilePath = Context.Request.CurrentExecutionFilePath;
\r
92 string filePath = Context.Request.FilePath;
\r
94 if (executionFilePath == filePath) {
\r
96 int lastSlash = attr.LastIndexOf('/');
\r
98 attr = attr.Substring(lastSlash + 1);
\r
100 attr = UrlUtils.MakeRelative (executionFilePath, UrlUtils.GetDirectory (filePath));
\r
102 attr = executionFilePath;
\r
104 string queryString = Context.Request.QueryStringRaw;
\r
105 if (queryString != null && queryString.Length > 0)
\r
106 attr = String.Concat(attr, '?', queryString);
\r
112 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
113 [WebCategory("Behavior")]
\r
114 public string Enctype{
\r
116 string attr = Attributes["enctype"];
\r
123 Attributes["enctype"] = AttributeToString(value);
\r
128 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
129 [WebCategory("Behavior")]
\r
130 public string Method{
\r
132 string attr = Attributes["method"];
\r
139 Attributes["method"] = AttributeToString(value);
\r
144 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
145 [WebCategory("Behavior")]
\r
146 public string Target{
\r
148 string attr = Attributes["target"];
\r
152 return String.Empty;
\r
155 Attributes["target"] = AttributeToString(value);
\r
160 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
161 [WebCategory("Appearance")]
\r
162 public virtual string Name{
\r
170 public override string UniqueID {
\r
172 if (NamingContainer == Page) {
\r
173 return base.UniqueID;
\r
175 return "__aspnetForm";
\r
178 } // class HtmlForm
\r
179 } // namespace System.Web.UI.HtmlControls
\r