我正在使用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");
答案 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"; %>