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