Asp.Net imagen en evento onclick de lista de datos? ¿Es posible?
Pregunta
Ok he estado trabajando en esta galería desde hace algún tiempo y me siguen dando cositas. Ahora es el momento para acabar con él. Tengo una lista de datos que se une a una matriz de * URL de imágenes .aspx que contienen un identificador de versión en miniatura que se envía a través de la URL. Ahora hay que implementar un evento onclick, que cuando un usuario hace clic en una foto, que los lleva a la imagen real.
Ejemplo de URL:
(Miniatura) = ~ / UserPages / foto / GetThumbnail.aspx? Id = 7
(Actualpic) = ~ / UserPages / foto / GetPhoto.aspx? Id = 7
Lo que necesito: ¿Cómo lo consigo para que cada foto tiene un evento onclick? He intentado añadir a la onclick src imag pero no funcionó. Es difícil porque no es un control de imagen real, que existen dentro de una lista de datos. También necesito saber cómo extraer la url miniatura al conseguir hecho clic para que pueda agarrar el id y redirigir a la imagen real. Ayuda por favor!
<asp:DataList ID="dlImages" runat="server"
RepeatColumns="5"
RepeatDirection="Horizontal"
RepeatLayout="Flow">
<ItemTemplate>
<img src="<%# ResolveUrl((string)Container.DataItem) %>" />
</ItemTemplate>
</asp:DataList>
Código Detrás:
dlImages.DataSource = ImageUrls;
dlImages.DataBind();
Solución
Puede envolverlo en una etiqueta a
?
<ItemTemplate>
<a href="<%# ResolveUrl(String.Format("~/UserPages/Photo/GetPhoto.aspx?id={0}", Container.DataItem)) %>"><img src="<%# ResolveUrl(String.Format("~/UserPages/Photo/GetThumbnail.aspx?id={0}", Container.DataItem)) %>" /></a>
</ItemTemplate>
Esto supone que su DataItem
contiene sólo el ID.
Otros consejos
Probar:
<ItemTemplate>
<img src="<%# ResolveUrl((string)Container.DataItem) %>" onclick="doSomething(this)" />
</ItemTemplate>
Después de que simplemente puede implementar una función doSomething que analiza el id de "this.src" y hacer lo que quiera con él.