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();
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top