By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
457,905 Members | 1,743 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 457,905 IT Pros & Developers. It's quick & easy.

Adding server controls programmatically(Noob Question) missinghyperlink text

P: n/a
I'm attempting to programmatically build up some HTML in the code
behind. Like so:

// Create Hyperlink
HyperLink link = new HyperLink();
link.NavigateUrl = "nice cat";
link.Text = "Cats Sleeping";

//Create Image
Image img = new Image();
img.ImageUrl = "http://www.cats.org.uk/images/lhstop_home2.jpg";

//Add image nested in the hyperlink
link.Controls.Add(img);

//Add the link with it's controls to a placeholder
PlaceHolder1.Controls.Add(link);

When I run the code I'm expecting an picture of a cat with the text
'Cats Sleeping' all enclosed in anchor tags. But instead all I get is
the image but no text. What am I doing wrong?
Jan 16 '08 #1
Share this Question
Share on Google+
4 Replies


P: n/a
What's probably happening is the image is replacing the text since they
technically want to fill the same spot. Instead of setting the text property
of the link, try doing something like creating the text as a literal then
adding the literal to the link's control collection.

Literal myText = new Literal();
myText.Text = "Cats Sleeping";
link.Controls.Add(myText);
--
Hope this helps,
Mark Fitzpatrick
Microsoft MVP - Expression

<al****@gmail.comwrote in message
news:f0**********************************@v4g2000h sf.googlegroups.com...
I'm attempting to programmatically build up some HTML in the code
behind. Like so:

// Create Hyperlink
HyperLink link = new HyperLink();
link.NavigateUrl = "nice cat";
link.Text = "Cats Sleeping";

//Create Image
Image img = new Image();
img.ImageUrl = "http://www.cats.org.uk/images/lhstop_home2.jpg";

//Add image nested in the hyperlink
link.Controls.Add(img);

//Add the link with it's controls to a placeholder
PlaceHolder1.Controls.Add(link);

When I run the code I'm expecting an picture of a cat with the text
'Cats Sleeping' all enclosed in anchor tags. But instead all I get is
the image but no text. What am I doing wrong?
Jan 16 '08 #2

P: n/a
Hi,

You would need to make the Hyperlink control as the container to show both
the text and image control in the Hyperlink control because this is the
default behavior of the Hyperlink control to replace the text with the image.

protected void Page_Load(object sender, EventArgs e)
{
// Create Hyperlink
HyperLink link = new HyperLink();
link.NavigateUrl = "nice cat";
//link.Text = "Cats Sleeping";
//link.ImageUrl = "http://www.cats.org.uk/images/lhstop_home2.jpg";

Label lb = new Label();
lb.Text = "Cats Sleeping";

link.Controls.Add(lb);
//Create Image
Image img = new Image();
img.ImageUrl = "http://www.cats.org.uk/images/lhstop_home2.jpg";

//Add image nested in the hyperlink
link.Controls.Add(img);

//Add the link with it's controls to a placeholder
PlaceHolder1.Controls.Add(link);

}

Regards,
Manish
www.ComponentOne.com

"Mark Fitzpatrick" wrote:
What's probably happening is the image is replacing the text since they
technically want to fill the same spot. Instead of setting the text property
of the link, try doing something like creating the text as a literal then
adding the literal to the link's control collection.

Literal myText = new Literal();
myText.Text = "Cats Sleeping";
link.Controls.Add(myText);
--
Hope this helps,
Mark Fitzpatrick
Microsoft MVP - Expression

<al****@gmail.comwrote in message
news:f0**********************************@v4g2000h sf.googlegroups.com...
I'm attempting to programmatically build up some HTML in the code
behind. Like so:

// Create Hyperlink
HyperLink link = new HyperLink();
link.NavigateUrl = "nice cat";
link.Text = "Cats Sleeping";

//Create Image
Image img = new Image();
img.ImageUrl = "http://www.cats.org.uk/images/lhstop_home2.jpg";

//Add image nested in the hyperlink
link.Controls.Add(img);

//Add the link with it's controls to a placeholder
PlaceHolder1.Controls.Add(link);

When I run the code I'm expecting an picture of a cat with the text
'Cats Sleeping' all enclosed in anchor tags. But instead all I get is
the image but no text. What am I doing wrong?
Jan 16 '08 #3

P: n/a
On 16 Січ, 07:07, alu...@gmail.com wrote:
I'm attempting to programmatically build up some HTML in the code
behind. Like so:

// Create Hyperlink
HyperLink link = new HyperLink();
link.NavigateUrl = "nice cat";
link.Text = "Cats Sleeping";

//Create Image
Image img = new Image();
img.ImageUrl = "http://www.cats.org.uk/images/lhstop_home2.jpg";

//Add image nested in the hyperlink
link.Controls.Add(img);

//Add the link with it's controls to a placeholder
PlaceHolder1.Controls.Add(link);

When I run the code I'm expecting an picture of a cat with the text
'Cats Sleeping' all enclosed in anchor tags. But instead all I get is
the image but no text.


Try this:

HyperLink link = new HyperLink();
link.NavigateUrl = "nice cat";
link.Text = string.Format("<img src='{0}'><br>{1}", "http://
www.cats.org.uk/images/lhstop_home2.jpg", "Cats Sleeping");
PlaceHolder1.Controls.Add(link);

Regards,
Mykola
http://marss.co.ua - Casual ideas for web development
Jan 16 '08 #4

P: n/a
Thanks for both your great answers, that's excatly what's been
happening. And thanks for the bit of code Manish I'll use it. Many
thanks Again
Jan 16 '08 #5

This discussion thread is closed

Replies have been disabled for this discussion.