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;
32 using System.Security.Permissions;
34 namespace System.Web.UI.WebControls {
37 [AspNetHostingPermissionAttribute (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
38 [AspNetHostingPermissionAttribute (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
40 [ControlBuilder(typeof(HyperLinkControlBuilder))]
41 [DataBindingHandler("System.Web.UI.Design.HyperLinkDataBindingHandler, " + Consts.AssemblySystem_Design)]
42 [ParseChildren (false)]
44 [ToolboxData("<{0}:HyperLink runat=\"server\">HyperLink</{0}:HyperLink>")]
46 [ToolboxData("<{0}:HyperLink runat=server>HyperLink</{0}:HyperLink>")]
48 [DefaultProperty("Text")]
49 [Designer("System.Web.UI.Design.WebControls.HyperLinkDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
50 public class HyperLink : WebControl {
52 public HyperLink () : base (HtmlTextWriterTag.A)
56 protected override void AddAttributesToRender (HtmlTextWriter w)
58 base.AddAttributesToRender (w);
60 AddDisplayStyleAttribute (w);
64 // add attributes - only if they're not empty
66 string s = NavigateUrl;
69 w.AddAttribute (HtmlTextWriterAttribute.Href, ResolveClientUrl (s, String.Compare (t, "_blank", StringComparison.InvariantCultureIgnoreCase) != 0));
71 w.AddAttribute (HtmlTextWriterAttribute.Href, ResolveClientUrl (s));
74 w.AddAttribute (HtmlTextWriterAttribute.Target, t);
77 protected override void AddParsedSubObject (object obj)
80 base.AddParsedSubObject (obj);
84 LiteralControl lc = obj as LiteralControl;
90 Controls.Add (new LiteralControl (s));
92 base.AddParsedSubObject (obj);
99 [MonoTODO ("Why override?")]
100 protected override void LoadViewState (object savedState)
102 base.LoadViewState (savedState);
110 override void RenderContents (HtmlTextWriter w)
112 if (HasControls () || HasRenderMethodDelegate ()) {
113 base.RenderContents (w);
116 string image_url = ImageUrl;
117 if (image_url != "") {
118 Image img = new Image ();
119 img.ImageUrl = ResolveClientUrl (image_url);
122 img.AlternateText = str;
126 img.RenderControl (w);
135 [Editor("System.Web.UI.Design.ImageUrlEditor, " + Consts.AssemblySystem_Design, typeof(System.Drawing.Design.UITypeEditor))]
139 [WebSysDescription ("")]
140 [WebCategory ("Appearance")]
141 public virtual string ImageUrl {
143 return ViewState.GetString ("ImageUrl", "");
146 ViewState ["ImageUrl"] = value;
152 [Editor("System.Web.UI.Design.UrlEditor, " + Consts.AssemblySystem_Design, typeof(System.Drawing.Design.UITypeEditor))]
156 [WebSysDescription ("")]
157 [WebCategory ("Navigation")]
158 public string NavigateUrl {
160 return ViewState.GetString ("NavigateUrl", "");
163 ViewState ["NavigateUrl"] = value;
171 [TypeConverter(typeof(System.Web.UI.WebControls.TargetConverter))]
172 [WebSysDescription ("")]
173 [WebCategory ("Navigation")]
174 public string Target {
176 return ViewState.GetString ("Target", "");
179 ViewState ["Target"] = value;
185 [PersistenceMode(PersistenceMode.InnerDefaultProperty)]
189 [WebSysDescription ("")]
190 [WebCategory ("Appearance")]
191 public virtual string Text {
193 return ViewState.GetString ("Text", "");
196 ViewState ["Text"] = value;