2 * Namespace: System.Web.UI.WebControls
\r
5 * Author: Gaurav Vaish
\r
6 * Maintainer: gvaish@iitk.ac.in
\r
7 * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>
\r
8 * Implementation: yes
\r
11 * (C) Gaurav Vaish (2001)
\r
15 using System.ComponentModel;
\r
17 using System.Web.UI;
\r
19 namespace System.Web.UI.WebControls
\r
21 [DefaultEvent("Click")]
\r
22 [DefaultProperty("Text")]
\r
23 //TODO: [Designer("??")]
\r
24 //TODO: [DataBindingHandler("??UI.Design.TextDataBindingHandler??")]
\r
25 [ToolboxData("<{0}:Button runat=\"server\" Text=\"Button\"></{0}:Button>")]
\r
26 public class Button : WebControl, IPostBackEventHandler
\r
28 private static readonly object ClickEvent = new object();
\r
29 private static readonly object CommandEvent = new object();
\r
31 //private EventHandlerList ehList;
\r
33 public Button(): base(HtmlTextWriterTag.Button)
\r
37 public bool CausesValidation
\r
41 Object cv = ViewState["CausesValidation"];
\r
48 ViewState["CausesValidation"] = value;
\r
52 public string CommandArgument
\r
56 string ca = (string) ViewState["CommandArgument"];
\r
59 return String.Empty;
\r
63 ViewState["CommandArgument"] = value;
\r
67 public string CommandName
\r
71 string cn = (string)ViewState["CommandName"];
\r
74 return String.Empty;
\r
78 ViewState["CommandName"] = value;
\r
86 string text = (string)ViewState["Text"];
\r
89 return String.Empty;
\r
93 ViewState["Text"] = value;
\r
97 public event EventHandler Click
\r
101 Events.AddHandler(ClickEvent, value);
\r
105 Events.RemoveHandler(ClickEvent, value);
\r
109 public event CommandEventHandler Command
\r
113 Events.AddHandler(CommandEvent, value);
\r
117 Events.RemoveHandler(CommandEvent, value);
\r
121 protected virtual void OnClick(EventArgs e)
\r
125 EventHandler eh = (EventHandler)(Events[ClickEvent]);
\r
131 protected virtual void OnCommand(CommandEventArgs e)
\r
135 EventHandler eh = (EventHandler)(Events[CommandEvent]);
\r
141 void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
\r
143 if(CausesValidation)
\r
146 OnClick(new EventArgs());
\r
147 OnCommand(new CommandEventArgs(CommandName, CommandArgument));
\r
151 protected override void AddAttributesToRender(HtmlTextWriter writer)
\r
153 writer.AddAttribute(HtmlTextWriterAttribute.Type,"submit");
\r
154 writer.AddAttribute(HtmlTextWriterAttribute.Name,base.UniqueID);
\r
155 writer.AddAttribute(HtmlTextWriterAttribute.Value,Text);
\r
156 if(Page!=null && CausesValidation && Page.Validators.Count > 0)
\r
158 writer.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Onclick, Utils.GetClientValidatedEvent(Page));
\r
159 writer.AddAttribute("language", "javascript");
\r
161 base.AddAttributesToRender(writer);
\r
164 protected override void RenderContents(HtmlTextWriter writer)
\r
166 // Preventing subclasses to do anything
\r