HyperLink.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /**
  2. * Namespace: System.Web.UI.WebControls
  3. * Class: HyperLink
  4. *
  5. * Author: Gaurav Vaish
  6. * Maintainer: [email protected]
  7. * Contact: [email protected], [email protected]
  8. * Implementation: yes
  9. * Status: 100%
  10. *
  11. * (C) Gaurav Vaish (2001)
  12. */
  13. using System;
  14. using System.Web;
  15. using System.Web.UI;
  16. using System.ComponentModel;
  17. namespace System.Web.UI.WebControls
  18. {
  19. [DefaultProperty("Text")]
  20. //[Designer(??)]
  21. [ControlBuilder(typeof(HyperLinkControlBuilder))]
  22. //[DataBindingHandler("??")]
  23. [ParseChildren(false)]
  24. [ToolboxData("<{0}:HyperLink runat=\"server\">HyperLink</{0}:HyperLink>")]
  25. public class HyperLink: WebControl
  26. {
  27. public HyperLink(): base(HtmlTextWriterTag.A)
  28. {
  29. }
  30. public virtual string ImageUrl
  31. {
  32. get
  33. {
  34. object o = ViewState["ImageUrl"];
  35. if(o!=null)
  36. return (string)o;
  37. return String.Empty;
  38. }
  39. set
  40. {
  41. ViewState["ImageUrl"] = value;
  42. }
  43. }
  44. public string NavigateUrl
  45. {
  46. get
  47. {
  48. object o = ViewState["NavigateUrl"];
  49. if(o!=null)
  50. return (string)o;
  51. return String.Empty;
  52. }
  53. set
  54. {
  55. ViewState["NavigateUrl"] = value;
  56. }
  57. }
  58. public string Target
  59. {
  60. get
  61. {
  62. object o = ViewState["Target"];
  63. if(o!=null)
  64. return (string)o;
  65. return String.Empty;
  66. }
  67. set
  68. {
  69. ViewState["Target"] = value;
  70. }
  71. }
  72. public virtual string Text
  73. {
  74. get
  75. {
  76. object o = ViewState["Text"];
  77. if(o!=null)
  78. return (string)o;
  79. return String.Empty;
  80. }
  81. set
  82. {
  83. ViewState["Text"] = value;
  84. }
  85. }
  86. protected override void AddAttributesToRender(HtmlTextWriter writer)
  87. {
  88. base.AddAttributesToRender(writer);
  89. if(NavigateUrl.Length > 0)
  90. {
  91. writer.AddAttribute(HtmlTextWriterAttribute.Href, NavigateUrl);
  92. }
  93. if(Target.Length > 0)
  94. {
  95. writer.AddAttribute(HtmlTextWriterAttribute.Target, Target);
  96. }
  97. }
  98. protected override void AddParsedSubObject(object obj)
  99. {
  100. if(HasControls())
  101. {
  102. base.AddParsedSubObject(obj);
  103. return;
  104. }
  105. if(obj is LiteralControl)
  106. {
  107. Text = ((LiteralControl)obj).Text;
  108. return;
  109. }
  110. if(Text.Length > 0)
  111. {
  112. base.AddParsedSubObject(Text);
  113. Text = String.Empty;
  114. }
  115. base.AddParsedSubObject (obj);
  116. }
  117. protected override void LoadViewState(object savedState)
  118. {
  119. if(savedState != null)
  120. {
  121. base.LoadViewState(savedState);
  122. object o = ViewState["Text"];
  123. if(o!=null)
  124. Text = (string)o;
  125. }
  126. }
  127. protected override void RenderContents(HtmlTextWriter writer)
  128. {
  129. if(ImageUrl.Length > 0)
  130. {
  131. Image img = new Image();
  132. img.ImageUrl = ResolveUrl(ImageUrl);
  133. if(ToolTip.Length > 0)
  134. img.ToolTip = ToolTip;
  135. if(Text.Length > 0)
  136. img.AlternateText = Text;
  137. img.RenderControl(writer);
  138. return;
  139. }
  140. if(HasControls())
  141. {
  142. base.RenderControl(writer);
  143. return;
  144. }
  145. writer.Write(Text);
  146. }
  147. }
  148. }