-/**\r
- * Namespace: System.Web.UI.WebControls\r
- * Class: LinkButton\r
- *\r
- * Author: Gaurav Vaish\r
- * Maintainer: gvaish@iitk.ac.in\r
- * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>\r
- * Implementation: yes\r
- * Status: 100%\r
- *\r
- * (C) Gaurav Vaish (2001)\r
- */\r
+//
+// System.Web.UI.WebControls.LinkButton.cs
+//
+// Authors:
+// Gaurav Vaish (gvaish@iitk.ac.in)
+// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//
+// (C) Gaurav Vaish (2002)
+// (C) 2003 Andreas Nahr
+//\r
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
\r
using System;\r
using System.Web;\r
using System.Web.UI;\r
+using System.ComponentModel;
+using System.ComponentModel.Design;\r
\r
namespace System.Web.UI.WebControls\r
{\r
+ [DefaultEvent("Click")]\r
+ [DefaultProperty("Text")]\r
+ [ControlBuilder(typeof(LinkButtonControlBuilder))]\r
+ [Designer("System.Web.UI.Design.WebControls.LinkButtonDesigner, " + Consts.AssemblySystem_Design, typeof (IDesigner))]\r
+ [DataBindingHandler("System.Web.UI.Design.TextDataBindingHandler, " + Consts.AssemblySystem_Design)]\r
+ [ParseChildren(false)]\r
+ [ToolboxData("<{0}:LinkButton runat=\"server\">LinkButton</{0}:LinkButton>")]\r
public class LinkButton : WebControl, IPostBackEventHandler\r
{\r
private static readonly object ClickEvent = new object();\r
private static readonly object CommandEvent = new object();\r
\r
- public LinkButton(): base(HtmlTextWriterTag.A)\r
+ public LinkButton () : base (HtmlTextWriterTag.A)\r
{\r
}\r
-\r
+
+ [DefaultValue (true), Bindable (false), WebCategory ("Behavior")]
+ [WebSysDescription ("Determines if validation is performed when clicked.")]\r
public bool CausesValidation\r
{\r
- get\r
- {\r
- object o = ViewState["CausesValidation"];\r
- if(o!=null)\r
- return (bool)o;\r
- return true;\r
- }\r
- set\r
- {\r
- ViewState["CausesValidation"] = value;\r
+ get {\r
+ object o = ViewState ["CausesValidation"];\r
+ return (o == null) ? true : (bool) o;\r
}\r
- }\r
\r
+ set { ViewState ["CausesValidation"] = value; }\r
+ }\r
+
+ [DefaultValue (""), Bindable (true), WebCategory ("Behavior")]
+ [WebSysDescription ("An argument for the Command of this control.")]\r
public string CommandArgument\r
{\r
- get\r
- {\r
- object o = ViewState["CommandArgument"];\r
- if(o!=null)\r
- return (string)o;\r
- return String.Empty;\r
+ get {\r
+ object o = ViewState ["CommandArgument"];\r
+ return (o == null) ? String.Empty : (string) o;\r
}\r
- set\r
- {\r
- ViewState["CommandArgument"] = value;\r
- }\r
- }\r
\r
+ set { ViewState ["CommandArgument"] = value; }\r
+ }\r
+
+ [DefaultValue (""), WebCategory ("Behavior")]
+ [WebSysDescription ("The name of the Command of this control.")]\r
public string CommandName\r
{\r
- get\r
- {\r
- object o = ViewState["CommandName"];\r
- if(o!=null)\r
- return (string)o;\r
- return String.Empty;\r
+ get {\r
+ object o = ViewState ["CommandName"];\r
+ return (o == null) ? String.Empty : (string) o;\r
}\r
- set\r
- {\r
- ViewState["CommandName"] = value;\r
- }\r
- }\r
\r
+ set { ViewState ["CommandName"] = value; }\r
+ }\r
+
+ [DefaultValue (""), Bindable (true), WebCategory ("Appearance")]
+ [PersistenceMode (PersistenceMode.InnerDefaultProperty)]
+ [WebSysDescription ("The text that should be shown on this LinkButton.")]\r
public virtual string Text\r
{\r
- get\r
- {\r
- object o = ViewState["Text"];\r
- if(o != null)\r
- {\r
- return (string)o;\r
- }\r
- return String.Empty;\r
- }\r
- set\r
- {\r
- ViewState["Text"] = value;\r
+ get {\r
+ object o = ViewState ["Text"];\r
+ return (o == null) ? String.Empty : (string) o;\r
}\r
- }\r
\r
+ set { ViewState ["Text"] = value; }\r
+ }\r
+
+ [WebCategory ("Action")]
+ [WebSysDescription ("Raised when the LinkButton is clicked.")]\r
public event EventHandler Click\r
{\r
- add\r
- {\r
- Events.AddHandler(ClickEvent, this);\r
- }\r
- remove\r
- {\r
- Events.RemoveHandler(ClickEvent, this);\r
- }\r
+ add { Events.AddHandler(ClickEvent, value); }\r
+ remove { Events.RemoveHandler(ClickEvent, value); }\r
}\r
-\r
+
+ [WebCategory ("Action")]
+ [WebSysDescription ("Raised when a LinkButton Command is executed.")]\r
public event CommandEventHandler Command\r
{\r
- add\r
- {\r
- Events.AddHandler(CommandEvent, this);\r
- }\r
- remove\r
- {\r
- Events.RemoveHandler(CommandEvent, this);\r
- }\r
+ add { Events.AddHandler(CommandEvent, value); }\r
+ remove { Events.RemoveHandler(CommandEvent, value); }\r
}\r
\r
- protected virtual void OnClick(EventArgs e)\r
+ protected virtual void OnClick (EventArgs e)\r
{\r
- if(Events != null)\r
- {\r
- EventHandler eh = (EventHandler)(Events[ClickEvent]);\r
- if(eh != null)\r
- eh(this, e);\r
+ if(Events != null){\r
+ EventHandler eh = (EventHandler) (Events [ClickEvent]);\r
+ if (eh != null)\r
+ eh (this, e);\r
}\r
}\r
\r
- protected virtual void OnCommand(CommandEventArgs e)\r
+ protected virtual void OnCommand (CommandEventArgs e)\r
{\r
- if(Events != null)\r
- {\r
- CommandEventHandler ceh = (CommandEventHandler)(Events[CommandEvent]);\r
- if(ceh != null)\r
- ceh(this, e);\r
+ if(Events != null){\r
+ CommandEventHandler ceh = (CommandEventHandler) (Events [CommandEvent]);\r
+ if (ceh != null)\r
+ ceh (this, e);\r
}\r
+ RaiseBubbleEvent (this, e);\r
}\r
\r
- void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)\r
+ protected override void OnPreRender (EventArgs e)\r
{\r
- if(CausesValidation)\r
- {\r
- Page.Validate();\r
- }\r
- OnClick(new EventArgs());\r
- OnCommand( new CommandEventArgs(CommandName, CommandArgument));\r
+ base.OnPreRender(e);\r
}\r
\r
- protected override void AddAttributesToRender(HtmlTextWriter writer)\r
+ void IPostBackEventHandler.RaisePostBackEvent (string eventArgument)\r
{\r
- base.AddAttributesToRender(writer);\r
- if(Enabled && Page != null)\r
- {\r
- if(CausesValidation && Page.Validators.Count > 0)\r
- {\r
- writer.Write(HtmlTextWriterAttribute.Href, "javscript:" + Utils.GetClientValidatedPostBack(this));\r
+ if (CausesValidation)\r
+ Page.Validate ();\r
+ OnClick (EventArgs.Empty);\r
+ OnCommand (new CommandEventArgs (CommandName, CommandArgument));\r
+ }\r
+\r
+ protected override void AddAttributesToRender (HtmlTextWriter writer)\r
+ {\r
+ base.AddAttributesToRender (writer);\r
+ if (Enabled && Page != null){\r
+ if (CausesValidation && Page.Validators.Count > 0){\r
+ writer.AddAttribute (HtmlTextWriterAttribute.Href,\r
+ "javascript:" + \r
+ Utils.GetClientValidatedPostBack (this));\r
return;\r
}\r
- writer.Write(HtmlTextWriterAttribute.Href, GetPostBackClientHyperlink(this, ""));\r
+ writer.AddAttribute (HtmlTextWriterAttribute.Href,\r
+ Page.GetPostBackClientHyperlink (this, ""));\r
}\r
}\r
\r
- protected override void AddParsedSubObject(object obj)\r
+ protected override void AddParsedSubObject (object obj)\r
{\r
- if(HasControls())\r
- {\r
- AddParsedSubObject(obj);\r
+ if (HasControls ()){\r
+ base.AddParsedSubObject (obj);\r
return;\r
}\r
- if(obj is LiteralControl)\r
- {\r
- Text = ((LiteralControl)obj).Text;\r
+\r
+ if (obj is LiteralControl){\r
+ Text = ((LiteralControl) obj).Text;\r
return;\r
}\r
- if(Text.Length > 0)\r
- {\r
- AddParsedSubObject(Text);\r
+\r
+ if (Text.Length > 0){\r
+ base.AddParsedSubObject (new LiteralControl (Text));\r
Text = String.Empty;\r
}\r
- AddParsedSubObject(obj);\r
+\r
+ base.AddParsedSubObject (obj);\r
}\r
\r
- protected override void LoadViewState(object savedState)\r
+ protected override void LoadViewState (object savedState)\r
{\r
- if(savedState != null)\r
- {\r
- base.LoadViewState(savedState);\r
- string savedText = (string)ViewState["Text"];\r
- if(savedText != null)\r
+ if (savedState != null){\r
+ base.LoadViewState (savedState);\r
+ string savedText = (string) ViewState ["Text"];\r
+ if (savedText != null)\r
Text = savedText;\r
}\r
}\r
\r
- protected override void RenderContents(HtmlTextWriter writer)\r
+ protected override void RenderContents (HtmlTextWriter writer)\r
{\r
- if(HasControls())\r
- {\r
- RenderContents(writer);\r
+ if (HasControls ()){\r
+ base.RenderContents (writer);\r
return;\r
}\r
- writer.Write(Text);\r
+ writer.Write (Text);\r
}\r
}\r
}\r