/* System.Web.Configuration * Authors: * Leen Toelen (toelen@hotmail.com) * Copyright (C) 2001 Leen Toelen */ using System; using System.Web; using System.Web.UI; namespace System.Web.UI.HtmlControls{ public class HtmlAnchor : HtmlContainerControl, IPostBackDataHandler{ private static object EventServerClick = new Object(); public HtmlAnchor(): base("a"){} protected virtual void OnServerClick(EventArgs e){ EventHandler handler; handler = (EventHandler) Events[EventServerClick]; if(handler != null){ handler.Invoke(this, e); } } protected override void RenderAttributes(HtmlTextWriter writer){ if ((EventHandler) Events[EventServerClick] != null){ Attributes.Remove("href"); RenderAttributes(writer); writer.WriteAttribute(Page.GetPostBackClientHyperlink(this,""),"href"); } else{ PreProcessRelativeReferenceAttribute(writer,"href"); RenderAttributes(writer); } } //FIXME: not sure about the accessor public void RaisePostBackEvent(string eventArgument){ OnServerClick(EventArgs.Empty); } public event EventHandler ServerClick{ add{ Events.AddHandler(EventServerClick, value); } remove{ Events.RemoveHandler(EventServerClick, value); } } public int HRef{ get{ string attr = Attributes["href"]; if (attr != null){ return attr; } return ""; } set{ //MapIntegerAttributeToString(value) accessible constraint is "assembly" Attributes["href"] = MapIntegerAttributeToString(value); } } public string Name{ get{ string attr = Attributes["name"]; if (attr != null){ return attr; } return ""; } set{ Attributes["name"] = MapStringAttributeToString(value); } } public string Target{ get{ string attr = Attributes["target"]; if (attr != null){ return attr; } return ""; } set{ Attributes["target"] = MapStringAttributeToString(value); } } public string Title{ get{ string attr = Attributes["title"]; if (attr != null){ return attr; } return ""; } set{ Attributes["title"] = MapStringAttributeToString(value); } } } // class HtmlAnchor } // namespace System.Web.UI.HtmlControls