tags:

views:

306

answers:

2

I'm using asp:Hyperlink to render linked images dynamically based on parameters in the URL. I need to be able to add a CSS class to the rendered img, and can't figure out how to do that.

I know I can add "CssClass="blah"" to the asp:Hyperlink, but in the rendered HTML, only the a receives the css class. Like this:

<a href="assets/images/blah.jpg" class="blah" id="ctl00_LeftContent_alternateImage4">
<img style="border-width: 0px;" src="assets/images/blahThumbnail.jpg"/>
</a>

I've found another question that allows me to add inline style to a control, but I want to add a class to the img that asp:Hyperlink generates.

Is it possible to do something similar to this answer:

myControl.Attributes.Add("style", "color:red");

Like, maybe?:

myControl.img.Attributes.Add("class", "blah");
+1  A: 

Just use the CssClass="blah" code like you were trying, but then in your css file:

.blah img {border-width: 0px;}

That targets img tags inside of elements with the .blah class.

Joel Coehoorn
i should have been more specific-- it's not that i need to add styling to the img, which your answer would certainly let me do, it's that i'm trying to target that image based on its class with javascript
Sarah Jean
A: 

It looks like you're using the ImageUrl property of HyperLink. I would recommend creating the inner image control explicitly:

<asp:HyperLink runat="server" CssClass="linkclass" NavigateUrl="http://example.com"&gt;
   <asp:Image runat="server" CssClass="imgClass" ImageUrl="yourimage.jpg" />
</asp:HyperLink>
jrummell
awesome! thanks, this is exactly what i needed
Sarah Jean