2 // System.Web.UI.WebControls.Label.cs
5 // Ben Maurer (bmaurer@novell.com)
7 // (C) 2005 Novell, Inc (http://www.novell.com)
9 // TODO: Are we missing something in LoadViewState?
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using System.ComponentModel;
34 namespace System.Web.UI.WebControls {
35 [ControlBuilder(typeof(HyperLinkControlBuilder))]
36 [DataBindingHandler("System.Web.UI.Design.HyperLinkDataBindingHandler, " + Consts.AssemblySystem_Design)]
37 [ParseChildren (false)]
39 [ToolboxData("<{0}:HyperLink runat=\"server\">HyperLink</{0}:HyperLink>")]
41 [ToolboxData("<{0}:HyperLink runat=server>HyperLink</{0}:HyperLink>")]
43 [DefaultProperty("Text")]
44 [Designer("System.Web.UI.Design.WebControls.HyperLinkDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
45 public class HyperLink : WebControl {
47 public HyperLink () : base (HtmlTextWriterTag.A)
51 protected override void AddAttributesToRender (HtmlTextWriter w)
53 base.AddAttributesToRender (w);
54 // add attributes - only if they're not empty
55 string s = NavigateUrl;
57 w.AddAttribute (HtmlTextWriterAttribute.Href, ResolveUrl (s));
60 w.AddAttribute (HtmlTextWriterAttribute.Target, s);
63 protected override void AddParsedSubObject (object obj)
66 base.AddParsedSubObject (obj);
70 LiteralControl lc = obj as LiteralControl;
76 Controls.Add (new LiteralControl (s));
78 base.AddParsedSubObject (obj);
85 [MonoTODO ("Why override?")]
86 protected override void LoadViewState (object savedState)
88 base.LoadViewState (savedState);
96 override void RenderContents (HtmlTextWriter w)
99 base.RenderContents (w);
100 else if (ImageUrl != "") {
101 w.AddAttribute (HtmlTextWriterAttribute.Src, ResolveUrl (ImageUrl));
105 w.AddAttribute (HtmlTextWriterAttribute.Alt, s);
106 w.AddStyleAttribute (HtmlTextWriterStyle.BorderWidth, "0px");
108 w.AddAttribute (HtmlTextWriterAttribute.Alt, Text);
109 w.AddAttribute (HtmlTextWriterAttribute.Border, "0");
111 w.RenderBeginTag (HtmlTextWriterTag.Img);
121 [Editor("System.Web.UI.Design.ImageUrlEditor, " + Consts.AssemblySystem_Design, typeof(System.Drawing.Design.UITypeEditor))]
125 [WebSysDescription ("")]
126 [WebCategory ("Appearance")]
127 public virtual string ImageUrl {
129 return ViewState.GetString ("ImageUrl", "");
132 ViewState ["ImageUrl"] = value;
138 [Editor("System.Web.UI.Design.UrlEditor, " + Consts.AssemblySystem_Design, typeof(System.Drawing.Design.UITypeEditor))]
142 [WebSysDescription ("")]
143 [WebCategory ("Navigation")]
144 public string NavigateUrl {
146 return ViewState.GetString ("NavigateUrl", "");
149 ViewState ["NavigateUrl"] = value;
157 [TypeConverter(typeof(System.Web.UI.WebControls.TargetConverter))]
158 [WebSysDescription ("")]
159 [WebCategory ("Navigation")]
160 public string Target {
162 return ViewState.GetString ("Target", "");
165 ViewState ["Target"] = value;
171 [PersistenceMode(PersistenceMode.InnerDefaultProperty)]
175 [WebSysDescription ("")]
176 [WebCategory ("Appearance")]
177 public virtual string Text {
179 return ViewState.GetString ("Text", "");
182 ViewState ["Text"] = value;