1 /* System.Web.UI.HtmlControls
\r
3 * Leen Toelen (toelen@hotmail.com)
\r
7 using System.ComponentModel;
\r
11 namespace System.Web.UI.HtmlControls{
\r
13 [DefaultEvent("ServerClick")]
\r
14 public class HtmlAnchor : HtmlContainerControl, IPostBackEventHandler{
\r
16 private static readonly object EventServerClick = new object ();
\r
18 public HtmlAnchor(): base("a"){}
\r
20 protected override void OnPreRender (EventArgs e)
\r
22 base.OnPreRender (e);
\r
23 if (Page != null && Events [EventServerClick] != null)
\r
24 Page.RequiresPostBackScript ();
\r
27 protected virtual void OnServerClick(EventArgs e){
\r
28 EventHandler handler;
\r
29 handler = (EventHandler) Events[EventServerClick];
\r
30 if (handler != null)
\r
34 protected override void RenderAttributes(HtmlTextWriter writer){
\r
35 if ( Events[EventServerClick] != null){
\r
36 Attributes.Remove("href");
\r
37 base.RenderAttributes(writer);
\r
38 writer.WriteAttribute("href", Page.GetPostBackClientHyperlink(this,String.Empty));
\r
41 PreProcessRelativeReference(writer,"href");
\r
42 base.RenderAttributes(writer);
\r
46 void System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(string eventArgument){
\r
47 OnServerClick(EventArgs.Empty);
\r
50 [WebCategory("Action")]
\r
51 [WebSysDescription("Fires when the control is clicked.")]
\r
52 public event EventHandler ServerClick{
\r
54 Events.AddHandler(EventServerClick, value);
\r
57 Events.RemoveHandler(EventServerClick, value);
\r
62 [WebCategory("Action")]
\r
63 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
66 string attr = Attributes["href"];
\r
67 if (attr != null) return attr;
\r
68 return String.Empty;
\r
71 Attributes["href"] = AttributeToString(value);
\r
76 [WebCategory("Navigation")]
\r
77 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
80 string attr = Attributes["name"];
\r
81 if (attr != null) return attr;
\r
82 return String.Empty;
\r
85 Attributes["name"] = AttributeToString(value);
\r
90 [WebCategory("Navigation")]
\r
91 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
92 public string Target{
\r
94 string attr = Attributes["target"];
\r
95 if (attr != null) return attr;
\r
96 return String.Empty;
\r
99 Attributes["target"] = AttributeToString(value);
\r
104 [WebCategory("Appearance")]
\r
105 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
\r
106 public string Title{
\r
108 string attr = Attributes["title"];
\r
109 if (attr != null) return attr;
\r
110 return String.Empty;
\r
113 Attributes["title"] = AttributeToString(value);
\r
117 } // class HtmlAnchor
\r
118 } // namespace System.Web.UI.HtmlControls
\r