2 * Namespace: System.Web.UI.WebControls
\r
5 * Author: Gaurav Vaish
\r
6 * Maintainer: gvaish@iitk.ac.in
\r
7 * Contact: gvaish@iitk.ac.in, myscripts_2001@yahoo.com
\r
8 * Implementation: yes
\r
11 * (C) Gaurav Vaish (2001)
\r
16 using System.Web.UI;
\r
17 using System.ComponentModel;
\r
19 namespace System.Web.UI.WebControls
\r
21 [DefaultProperty("Text")]
\r
23 [ControlBuilder(typeof(HyperLinkControlBuilder))]
\r
24 //[DataBindingHandler("??")]
\r
25 [ParseChildren(false)]
\r
26 [ToolboxData("<{0}:HyperLink runat=\"server\">HyperLink</{0}:HyperLink>")]
\r
27 public class HyperLink: WebControl
\r
31 public HyperLink(): base(HtmlTextWriterTag.A)
\r
35 public virtual string ImageUrl
\r
39 object o = ViewState["ImageUrl"];
\r
42 return String.Empty;
\r
46 ViewState["ImageUrl"] = value;
\r
50 public string NavigateUrl
\r
54 object o = ViewState["NavigateUrl"];
\r
57 return String.Empty;
\r
61 ViewState["NavigateUrl"] = value;
\r
65 public string Target
\r
69 object o = ViewState["Target"];
\r
72 return String.Empty;
\r
76 ViewState["Target"] = value;
\r
80 public virtual string Text
\r
83 object o = ViewState ["Text"];
\r
87 return String.Empty;
\r
90 ViewState["Text"] = value;
\r
97 get { return Text; }
\r
98 set { ViewState["Text"] = value; }
\r
101 protected override void AddAttributesToRender(HtmlTextWriter writer)
\r
103 base.AddAttributesToRender(writer);
\r
104 if(NavigateUrl.Length > 0)
\r
106 writer.AddAttribute(HtmlTextWriterAttribute.Href, NavigateUrl);
\r
108 if(Target.Length > 0)
\r
110 writer.AddAttribute(HtmlTextWriterAttribute.Target, Target);
\r
114 protected override void AddParsedSubObject(object obj)
\r
118 base.AddParsedSubObject(obj);
\r
121 if(obj is LiteralControl)
\r
123 // This is a hack to workaround the behaviour of the code generator, which
\r
124 // may split a text in several LiteralControls if there's a special character
\r
125 // such as '<' in it.
\r
127 Text = ((LiteralControl)obj).Text;
\r
130 InternalText += ((LiteralControl)obj).Text;
\r
136 if(Text.Length > 0)
\r
138 base.AddParsedSubObject(new LiteralControl (Text));
\r
139 Text = String.Empty;
\r
141 base.AddParsedSubObject (obj);
\r
144 protected override void LoadViewState(object savedState)
\r
146 if(savedState != null)
\r
148 base.LoadViewState(savedState);
\r
149 object o = ViewState["Text"];
\r
155 protected override void RenderContents(HtmlTextWriter writer)
\r
157 if(ImageUrl.Length > 0)
\r
159 Image img = new Image();
\r
160 img.ImageUrl = ResolveUrl(ImageUrl);
\r
161 if(ToolTip.Length > 0)
\r
162 img.ToolTip = ToolTip;
\r
163 if(Text.Length > 0)
\r
164 img.AlternateText = Text;
\r
165 img.RenderControl(writer);
\r
170 base.RenderContents(writer);
\r
173 writer.Write(Text);
\r