在asp:Hyperlink中将CSS类应用于图像?

时间:2009-09-15 18:25:22

标签: c# asp.net css

我正在使用asp:Hyperlink根据URL中的参数动态呈现链接图像。我需要能够为渲染的img添加一个CSS类,并且无法弄清楚如何做到这一点。

我知道我可以在asp:Hyperlink中添加“CssClass =”blah“”,但在呈现的HTML中,只有a接收到css类。像这样:

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

我发现another question允许我为控件添加内联样式,但我想在img中添加一个类:超链接生成。

是否可以做与此答案类似的事情:

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

喜欢,也许?:

myControl.img.Attributes.Add("class", "blah");

4 个答案:

答案 0 :(得分:11)

看起来您正在使用HyperLink的ImageUrl属性。我建议明确地创建内部图像控件:

<asp:HyperLink runat="server" CssClass="linkclass" NavigateUrl="http://example.com">
   <asp:Image runat="server" CssClass="imgClass" ImageUrl="yourimage.jpg" />
</asp:HyperLink>

答案 1 :(得分:2)

只需使用您尝试的CssClass="blah"代码,然后使用css文件:

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

针对img类的元素内的.blah标记。

答案 2 :(得分:0)

你可以尝试类似的东西:

HyperLink1.Attributes("onmouseover") = "this.firstChild.src='Images/MouseOver.jpg'"

答案 3 :(得分:0)

扩展@jrummell回答:

如果您的图像是在代码后面动态添加的,那么您可以执行以下操作:

<% (lnkImage.Controls[0] as Image).CssClass = "some-class"; %>