Pergunta

Ok eu tenho vindo a trabalhar sobre esta galeria por algum tempo e eu continuo recebendo pequenos petiscos. É agora tempo para terminá-lo fora. Eu tenho um datalist que se liga a uma série de urls * .aspx imagem que contêm um ID de miniatura que é enviado através da url. Agora eu preciso para implementar um evento onclick, que, quando um usuário clica em uma foto, ele os leva para a imagem real.

exemplo url:
(Miniatura) = ~ / userpages / Foto / GetThumbnail.aspx? Id = 7
(Actualpic) = ~ / userpages / Foto / GetPhoto.aspx? Id = 7

O que eu preciso: Como faço para obtê-lo de modo que cada foto tem um evento onclick? Eu tentei adicionar onclick para o src imag mas não funcionou. É difícil, porque não é um controle de imagem real, eles existem dentro de um datalist. Eu também preciso saber como extrair a miniatura url quando se clicado para que eu possa agarrar o id e redirecionamento para a imagem real. Ajuda por favor!

<asp:DataList ID="dlImages" runat="server" 
    RepeatColumns="5" 
    RepeatDirection="Horizontal" 
    RepeatLayout="Flow">

    <ItemTemplate>
        <img src="<%# ResolveUrl((string)Container.DataItem) %>" />
    </ItemTemplate>

</asp:DataList>

Code Behind:

dlImages.DataSource = ImageUrls;
dlImages.DataBind();
Foi útil?

Solução

Você pode envolvê-lo em uma tag 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>

Este assume o seu DataItem contém apenas o ID.

Outras dicas

Tente:

<ItemTemplate>
    <img src="<%# ResolveUrl((string)Container.DataItem) %>" onclick="doSomething(this)" />
</ItemTemplate>

Depois que você pode simplesmente implementar uma função doSomething que analisa o ID de fora do "this.src" e fazer o que quiser com ele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top