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

9

我正在使用asp:Hyperlink根据URL中的参数动态地呈现链接图像。我需要能够将CSS类添加到呈现的img中,但无法弄清楚如何实现。

我知道我可以在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>

我找到了一个相关问题,可以让我向控件添加内联样式,但我想要向asp:Hyperlink生成的img添加类。
是否可能做类似于这个答案的事情:
myControl.Attributes.Add("style", "color:red");

比如说:

myControl.img.Attributes.Add("class", "blah");
4个回答

13

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

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

3

只需像您尝试的那样使用CssClass="blah"代码,但是在您的CSS文件中:

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

这是针对带有 .blah 类的元素内部的 img 标签进行操作。


我应该更加具体地说明--我的需求不是要给img添加样式,虽然你的回答可以让我这么做,而是我想通过JavaScript根据它的类来定位那个图片。 - Sarah Jean

0
你可以尝试类似这样的代码:
HyperLink1.Attributes("onmouseover") = "this.firstChild.src='Images/MouseOver.jpg'"

0

扩展@jrummell的答案:

如果您的图像是在代码后端动态添加的,您可以通过以下方式实现相同的效果:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接