Problem mit Bildern innerhalb von ASP.NET Labels
Ich habe eben feststellen müssen, dass ein Label Element (<label> oder auch ein <asp:Label /> mit einer AssociatedControlID) das Click-Event nicht an das entsprechende Formularelement weiterleitet, wenn innerhalb des Labels nur ein Bild platziert ist:
<input type="checkbox" id="chb1" value="1" />
<label for="chb1">
<img alt="" id="DatePickerTest1_imgTime" title="Uhrzeit wählen"
src="common/images/clock.gif" />
</label>
Nach einigem Suchen bin ich im SelfHTML Forum auf die Erklährung und die Lösung gestoßen:
http://forum.de.selfhtml.org/archiv/2006/4/t128057/#m826953
[quote]Das IMG-Element verkonsumiert im Normalfall die Klick-Aktion einfach, ohne sie an das LABEL-Element weiterzuleiten.[/quote]
Folgender Code funktioniert dann bei mir:
<input type="checkbox" id="chb1" value="1" />
<label for="chb1">
<img alt="" id="DatePickerTest1_imgTime" title="Uhrzeit wählen"
onclick="if(this.parentNode.click)this.parentNode.click();"
src="common/images/clock.gif" />
</label>
Der Eventhandler wird von mir serverseitig dem Image hinzugefügt:
[code language="C#"]imgTime.Attributes.Add("onclick", "if(this.parentNode.click)this.parentNode.click();");[/code
Das Javsscript lößt beim Elternelement, dem Label, das Click-Ereignis aus, sobald auf das Bild angeclickt wird.