1 /* System.Web.UI.HtmlControls
3 * Leen Toelen (toelen@hotmail.com)
7 using System
.Collections
;
8 using System
.ComponentModel
;
13 namespace System
.Web
.UI
.HtmlControls
{
15 public class HtmlForm
: HtmlContainerControl
{
18 //private static string SmartNavIncludeScriptKey = "SmartNavIncludeScript";
20 public HtmlForm(): base("form"){}
22 protected override void RenderAttributes(HtmlTextWriter writer
){
23 writer
.WriteAttribute("name", Name
);
24 Attributes
.Remove("name");
25 writer
.WriteAttribute("method", Method
);
26 Attributes
.Remove("method");
27 writer
.WriteAttribute("action", Action
, true);
28 Attributes
.Remove("action");
30 writer
.WriteAttribute ("enctype", Enctype
);
31 Attributes
.Remove ("enctype");
34 Hashtable onSubmit
= Page
.submitStatements
;
35 if (onSubmit
!= null && onSubmit
.Count
> 0){
36 StringBuilder sb
= new StringBuilder ();
37 string prev
= Attributes
["onsubmit"];
40 Attributes
.Remove ("onsubmit");
43 foreach (string s
in onSubmit
.Values
)
46 writer
.WriteAttribute ("language", "javascript");
47 writer
.WriteAttribute ("onsubmit", sb
.ToString ());
51 writer
.WriteAttribute ("id", ClientID
);
53 base.RenderAttributes (writer
);
56 protected override void Render(HtmlTextWriter output
){
57 /*** Disabled smart navigation. We have no scripts - Gonzalo
58 if (Page.SmartNavigation == false){
63 ((IAttributeAccessor) this).SetAttribute("_smartNavigation","true");
64 HttpBrowserCapabilities browserCap = Context.Request.Browser;
65 if (browserCap.Browser.ToLower() != "ie" && browserCap.MajorVersion < 5){
69 output.WriteLine("<IFRAME ID=_hifSmartNav NAME=_hifSmartNav STYLE=display:none ></IFRAME>");
71 if (browserCap.MinorVersion < 0.5 && browserCap.MajorVersion != 5)
72 Page.RegisterClientScriptFile("SmartNavIncludeScript","JScript","SmartNavIE5.js");
73 else if (Page.IsPostBack) Page.RegisterClientScriptFile("SmartNavIncludeScript","JScript","SmartNav.js");
78 protected override void RenderChildren (HtmlTextWriter writer
)
80 Page
.OnFormRender (writer
,ClientID
);
81 base.RenderChildren (writer
);
82 Page
.OnFormPostRender (writer
,ClientID
);
85 protected override void OnInit(EventArgs e
){
87 Page
.RegisterViewStateHandler();
90 internal string Action
{
92 string executionFilePath
= Context
.Request
.CurrentExecutionFilePath
;
93 string filePath
= Context
.Request
.FilePath
;
95 if (String
.ReferenceEquals(executionFilePath
, filePath
) == true){
97 int lastSlash
= attr
.LastIndexOf('/');
99 attr
= attr
.Substring(lastSlash
+ 1);
102 attr
= System
.Web
.Util
.UrlUtils
.MakeRelative(filePath
,executionFilePath
);
104 string queryString
= Context
.Request
.QueryStringRaw
;
105 if (queryString
!= null && queryString
.Length
> 0)
106 attr
= String
.Concat(attr
, '?', queryString
);
112 [DesignerSerializationVisibility (DesignerSerializationVisibility
.Hidden
)]
113 [WebCategory("Behavior")]
114 public string Enctype
{
116 string attr
= Attributes
["enctype"];
123 Attributes
["enctype"] = AttributeToString(value);
128 [DesignerSerializationVisibility (DesignerSerializationVisibility
.Hidden
)]
129 [WebCategory("Behavior")]
130 public string Method
{
132 string attr
= Attributes
["method"];
139 Attributes
["method"] = AttributeToString(value);
144 [DesignerSerializationVisibility (DesignerSerializationVisibility
.Hidden
)]
145 [WebCategory("Behavior")]
146 public string Target
{
148 string attr
= Attributes
["target"];
155 Attributes
["target"] = AttributeToString(value);
160 [DesignerSerializationVisibility (DesignerSerializationVisibility
.Hidden
)]
161 [WebCategory("Appearance")]
162 public virtual string Name
{
170 } // namespace System.Web.UI.HtmlControls