none
como faz para concaternar "<%# Eval..." com dropdownlist? RRS feed

  • Pergunta

  •  

    Bom dia pessoal,

     

    estou fazendo uma galeria de fotos como disse no post anterior mas estou com problema para interagir com asp dentro do html...ex:

    tenho um datalist e dentro do mesmo em um template tenho um componente Image que estou utilizando o comando :

    ImageUrl='<%# Eval("fot_descricao","~/arquivos/"aqui tenho que pegar o retorno do dropdownlist"/pequenas") como se fosse dropdownlist.SelectedValue.. para que link a foto correta...

     

    outra coisa também que eu precisava saber era como pegar o evento "CLICK" da imagem, sendo que esta imagem está em um template dentro de um datalist...

     

    Grato

     

     

    quarta-feira, 31 de dezembro de 2008 10:53

Todas as Respostas

  • Olá Ibanes!

     

    Tente:

     

    Code Snippet

    <ItemTemplate>

    <%# MinhaImagem.ImageUrl=DataBinder.Eval(Container.DataItem, "UrlDaImagem") + DropDownList1.SelectedValue %>

    </ItemTemplate>

     

     

     

    Mais informações http://www.macoratti.net/aspn_dtl.htm

     

    Abraços e um feliz ano novo,

     

    Rodrigo Vedovato

    quarta-feira, 31 de dezembro de 2008 20:02
  • Olá Ibanes,

     

    O ideal é montar o caminho da imagem durante a criação de cada item, no evento OnItemCreated do seu DataList.

     

    Veja o artigo abaixo, onde eu mostro um exemplo muito parecido com o que você precisa:

     

    Consulta ao BD e imagem na Pasta de Arquivo, como fazer?
    http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=4085023&SiteID=21

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quarta-feira, 31 de dezembro de 2008 20:15
  • Primeiramente, feliz ano novo pra vocês e obrigado por responderem...

     

    Caio, tentei fazer do seu jeito só para aprender e não deu certo pq no segundo select ele perde o valor do campo retornado no select aí teria q fazer novamente ou usar session mas não sei se é necessário... então utilizei o esquema do rodrigo e funcionou perfeito porém estou com problema para utilizar o evento onClick... ou melhor, para pegar qual imagem foi clicada e passar o caminho para um outro componente imagemMedia por exemplo..

     

    ex:

    tenho os thumbnails do lado esquerdo onde foram carregados em um datalist..quando clicado em algum thumbnail deverá disparar um evento como se fosse o selectedChanged para que consiga mudar o src do componente ImagemMedia que está no meio da tela..

    o único jeito que eu consegui até agora de pegar o thumbnail clicado por utilizando imagembutton e com o evento postbackurl, então chamo a url novamente passando como parametro o código da media..mas queria algo mais simples onde não precisasse dar postback utilizando updatepanel e só modificando o src da imagem média...

     

    podem me ajudar com isso? qual a melhor forma de fazer??

     

    Grato,

     

    sexta-feira, 2 de janeiro de 2009 11:49
  • Então.. pra esse caso o mais recomendado é utilizar javascript, pois não é necessário ir até o servidor para buscar informações.. afinal das contas todas as urls que vc necessita já estão no cliente e os ids já foram obtidos

     

    Seria uma função mais ou menos assim:

    Code Snippet

    function ChangeImage(ida,idb)

    {

    var prop = document.GetElementById(ida).Value;

    document.GetElementById(idb).Value = prop;

    }

     

    E nos seu ItemTemplate você colocaria:

    < P>

    Code Snippet

    < P><ItemTemplate>

    < P><asp:Image ID="Control_Id" ImageUrl=" <%# DataBinder.Eval(Container.DataItem,"UrlDaImagem") +

    < P>DropDownList1.SelectedValue %> " OnClientClick="BLOCKED SCRIPTChangeImage('Control_Id','Imagem2'); "

    < P></ItemTemplate>

     

    Coloquei no OnClientClick pois ele dispara eventos javascript nos controles.

    < P> 

    < P>Só não sei se o Value da imagem seria a propriedada ImageUrl ou um array de bytes.. dá uma procurada nisso (apesar de que eu acho que isto tornará um controle igual ao outro, portanto tanto faz Wink

     

    Abraços,

     

    Rodrigo Vedovato

    sexta-feira, 2 de janeiro de 2009 21:41
  •  

    Rodrigo, valeu pela ajuda... mas não consegui fazer deste jeito q vc disse.. não sei oq, utilizo a propriedade ImageUrl para mostrar a imagem e utilizei updatepanels+a propriedade ItemCommand do datalist para saber qual item o usuário selecionou, assim ficou perfeito porém acredito que ficaria mais leve fazendo do seu jeito mas não tive sucesso Smile

     

    obrigado mesmo assim a vc e ao caio..

     

    abraço!

    segunda-feira, 5 de janeiro de 2009 00:05