Bladeren bron

2003-01-07 Gonzalo Paniagua Javier <[email protected]>

	* HyperLink.cs: fixes bug #36336.

svn path=/trunk/mcs/; revision=10232
Gonzalo Paniagua Javier 23 jaren geleden
bovenliggende
commit
dcbbeb8b65

+ 4 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog

@@ -1,3 +1,7 @@
+2003-01-07  Gonzalo Paniagua Javier <[email protected]>
+
+	* HyperLink.cs: fixes bug #36336.
+
 2003-01-07  Gonzalo Paniagua Javier <[email protected]>
 
 	* DataList.cs: fixed IRepeatInfoUser.GetItemStyle.

+ 26 - 8
mcs/class/System.Web/System.Web.UI.WebControls/HyperLink.cs

@@ -26,6 +26,8 @@ namespace System.Web.UI.WebControls
 	[ToolboxData("<{0}:HyperLink runat=\"server\">HyperLink</{0}:HyperLink>")]
 	public class HyperLink: WebControl
 	{
+		bool textSet;
+
 		public HyperLink(): base(HtmlTextWriterTag.A)
 		{
 		}
@@ -77,19 +79,25 @@ namespace System.Web.UI.WebControls
 
 		public virtual string Text
 		{
-			get
-			{
-				object o = ViewState["Text"];
-				if(o!=null)
-					return (string)o;
+			get {
+				object o = ViewState ["Text"];
+				if (o != null)
+					return (string) o;
+
 				return String.Empty;
 			}
-			set
-			{
+			set {
 				ViewState["Text"] = value;
+				textSet = true;
 			}
 		}
 
+		string InternalText
+		{
+			get { return Text; }
+			set { ViewState["Text"] = value; }
+		}
+
 		protected override void AddAttributesToRender(HtmlTextWriter writer)
 		{
 			base.AddAttributesToRender(writer);
@@ -112,7 +120,17 @@ namespace System.Web.UI.WebControls
 			}
 			if(obj is LiteralControl)
 			{
-				Text = ((LiteralControl)obj).Text;
+				// This is a hack to workaround the behaviour of the code generator, which
+				// may split a text in several LiteralControls if there's a special character
+				// such as '<' in it.
+				if (textSet) {
+					Text = ((LiteralControl)obj).Text;
+					textSet = false;
+				} else {
+					InternalText += ((LiteralControl)obj).Text;
+				}
+				//
+
 				return;
 			}
 			if(Text.Length > 0)