2009-09-15 10 views
9

Używam asp: Hiperłącze do dynamicznego renderowania obrazów połączonych na podstawie parametrów w adresie URL. Muszę umieć dodać klasę CSS do renderowanego obrazu i nie mogę wymyślić, jak to zrobić.Stosowanie klasy CSS do obrazu w asp: Hiperłącze?

Wiem, że mogę dodać "CssClass =" bla "do asp: Hiperłącze, ale w renderowanym kodzie HTML tylko klasa A otrzymuje klasę css. Tak:

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

Znalazłem another question że pozwala mi dodać styl inline do kontroli, ale chcę, aby dodać klasę do img tym asp: hiperłącza generuje.

Czy można zrobić coś podobnego do tej odpowiedzi:

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

podobnych, może ?:

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

Odpowiedz

11

Wygląda na to, że używasz właściwości ImageUrl HyperLink. Polecam tworząc wewnętrzną kontrolę obrazu wyraźnie:

+0

niesamowitym! dzięki, to jest dokładnie to, czego potrzebowałem –

2

Wystarczy użyć kodu CssClass="blah" jakbyś stara, ale potem w pliku css :

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

Który dotyczy tagów img wewnątrz elem ents z klasą .blah.

+0

Powinienem być bardziej szczegółowy - jest nie to, że muszę dodać styl do pliku img, na co Twoja odpowiedź z pewnością pozwoliłaby mi, to jest to, że próbuję kierować ten obraz na podstawie jego klasy z javascript –

0

Można spróbować coś podobnego do tego:

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

Rozszerzanie @jrummell odpowiedź:

Jeśli obraz jest dodawana dynamicznie w kodzie tyłu , możesz osiągnąć to samo, wykonując następujące czynności:

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