Using the ImageUrl property of the HyperLink control

N

Nathan Sokalski

I have several HyperLink controls on my site in which I use the ImageUrl
property to display them as an image. This generates something like the
following:

<a><img/></a>

I would like to specify the height and width of the image, but if I use the
HyperLink's Height and Width properties, something like the following is
generated:

<a style="display:inline-block;height:100px;width:100px;"><img/></a>

My basic problem here is that there is no way to add style to the image.
Yes, I know that I could make the HyperLink and image separate controls or
create a CSS class that uses a child selector. But we all know that it is
good practice to set the width and height of images, so why did they give
the HyperLink an ImageUrl property if you can't specify it's width and
height? In my opinion, the HyperLink is very poorly designed when it comes
to creating graphical hyperlinks.
 
I

iduditz

Its probably easier to just use the img itself i.e.
<a href="bla"><img src="bla" width="64" height="64"></a>
 
P

Patrik

Yep you are right. The ImageUrl is pretty useless if you want to
control the attributes of the image.
But the control also provides you with the ability to add subcontrols.
For example:

Image img = new Image();
img.ImageUrl = "picture.jpg";
img.Width = new Unit(150, UnitType.Pixel);
img.Height = new Unit(150, UnitType.Pixel);

MyHyperLinkControl.Controls.Add(img);

That would probably work pretty much the way you want, and you can
access all attributes of the image.

///Patrik
 
N

Nathan Sokalski

You are correct in your solution, but I was looking for a way to do this
declaratively using only the HyperLink control. Please don't bother to tell
me some other combination of tags/controls that will produce what I
mentioned, because I know how to do it that way. Basically all I am saying
in this post is that there are certain things that a control should give you
access to, and in my opinion the HyperLink does not do that.
--
Nathan Sokalski
(e-mail address removed)
http://www.nathansokalski.com/

Patrik said:
Yep you are right. The ImageUrl is pretty useless if you want to
control the attributes of the image.
But the control also provides you with the ability to add subcontrols.
For example:

Image img = new Image();
img.ImageUrl = "picture.jpg";
img.Width = new Unit(150, UnitType.Pixel);
img.Height = new Unit(150, UnitType.Pixel);

MyHyperLinkControl.Controls.Add(img);

That would probably work pretty much the way you want, and you can
access all attributes of the image.

///Patrik
 
B

Brickbat

I don't understand how this glaring omission hasn't been fixed by Microsoft.
Don't they care that developers see stuff like this and think 'PHP please' or
'JSP whatever'. I get so frustrated by this kind of crap - they need to fire
all the suits with their marketing garbage and hire a few more developers.

Nathan Sokalski said:
You are correct in your solution, but I was looking for a way to do this
declaratively using only the HyperLink control. Please don't bother to tell
me some other combination of tags/controls that will produce what I
mentioned, because I know how to do it that way. Basically all I am saying
in this post is that there are certain things that a control should give you
access to, and in my opinion the HyperLink does not do that.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top