**** Merged from MCS ****
[mono-project.git] / mcs / class / System.Web / System.Web.UI.HtmlControls / HtmlAnchor.cs
blob76a813e95ee77cb8d89aa54828245c2ee23b9226
1 /* System.Web.UI.HtmlControls
2 * Authors
3 * Leen Toelen (toelen@hotmail.com)
4 */
6 using System;
7 using System.ComponentModel;
8 using System.Web;
9 using System.Web.UI;
11 namespace System.Web.UI.HtmlControls{
13 [DefaultEvent("ServerClick")]
14 public class HtmlAnchor : HtmlContainerControl, IPostBackEventHandler{
16 private static readonly object EventServerClick = new object ();
18 public HtmlAnchor(): base("a"){}
20 protected override void OnPreRender (EventArgs e)
22 base.OnPreRender (e);
23 if (Page != null && Events [EventServerClick] != null)
24 Page.RequiresPostBackScript ();
27 protected virtual void OnServerClick(EventArgs e){
28 EventHandler handler;
29 handler = (EventHandler) Events[EventServerClick];
30 if (handler != null)
31 handler (this, e);
34 protected override void RenderAttributes(HtmlTextWriter writer){
35 if ( Events[EventServerClick] != null){
36 Attributes.Remove("href");
37 base.RenderAttributes(writer);
38 writer.WriteAttribute("href", Page.GetPostBackClientHyperlink(this,String.Empty));
40 else{
41 PreProcessRelativeReference(writer,"href");
42 base.RenderAttributes(writer);
46 void System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(string eventArgument){
47 OnServerClick(EventArgs.Empty);
50 [WebCategory("Action")]
51 [WebSysDescription("Fires when the control is clicked.")]
52 public event EventHandler ServerClick{
53 add{
54 Events.AddHandler(EventServerClick, value);
56 remove{
57 Events.RemoveHandler(EventServerClick, value);
61 [DefaultValue("")]
62 [WebCategory("Action")]
63 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
64 public string HRef{
65 get{
66 string attr = Attributes["href"];
67 if (attr != null) return attr;
68 return String.Empty;
70 set{
71 Attributes["href"] = AttributeToString(value);
75 [DefaultValue("")]
76 [WebCategory("Navigation")]
77 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
78 public string Name{
79 get{
80 string attr = Attributes["name"];
81 if (attr != null) return attr;
82 return String.Empty;
84 set{
85 Attributes["name"] = AttributeToString(value);
89 [DefaultValue("")]
90 [WebCategory("Navigation")]
91 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
92 public string Target{
93 get{
94 string attr = Attributes["target"];
95 if (attr != null) return attr;
96 return String.Empty;
98 set{
99 Attributes["target"] = AttributeToString(value);
103 [DefaultValue("")]
104 [WebCategory("Appearance")]
105 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
106 public string Title{
107 get{
108 string attr = Attributes["title"];
109 if (attr != null) return attr;
110 return String.Empty;
112 set{
113 Attributes["title"] = AttributeToString(value);
117 } // class HtmlAnchor
118 } // namespace System.Web.UI.HtmlControls