none
Repetir linhas na página! RRS feed

  • Pergunta

  • Boa tarde pessoal!, vejam se podem me ajudar..

    Na imagem abaixo.. eu trago do banco de dados a imagem o texto.

    Porém eu não sei quantas imagens e textos virão, eu preciso saber qual componente usar, para fazer um "while" desta forma eu trago os valores para o componente e ele vai repetindo imagem na esquerda e texto na frente.


    Douglas Bertelli

    sexta-feira, 19 de outubro de 2012 17:15

Respostas

  • Você pode usar

    <%# DataBinder.Eval(Container.DataItem, "CAMPODOCODIGO") %>

    no lugar onde quer que apareça a informação

    Ou através do método ItemDataBound


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    • Marcado como Resposta Douglas Bertelli sexta-feira, 19 de outubro de 2012 19:25
    sexta-feira, 19 de outubro de 2012 18:44

Todas as Respostas

  • Douglas, Boa tarde

    Usa o Repeater, abaixo tem alguns exemplos

    http://www.macoratti.net/aspn_rep.htm

    http://www.w3schools.com/aspnet/aspnet_repeater.asp

    http://www.codigofonte.net/dicas/dotnet/325_trabalhando-com-repeater-no-aspnet


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 19 de outubro de 2012 17:16
  • Sim posso usar o repeater, mas no que.. numa table.. num listview, o que eu posso usar para carregar uma imagem + texto?

    Douglas Bertelli

    sexta-feira, 19 de outubro de 2012 17:21
  • Douglas, 

    Como você costuma fazer os seus seus selects no banco?


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 19 de outubro de 2012 17:25
  • no caso deste projeto.. bem simples.. camada DAL e UI..

    select titulo, conteudo, imagem from xxxxxxxx

    na coluna imagem gravo o diretorio, e na webpage chama o <asp:imagem depois via codebehind coloco imagem1.imageurl = xxxxx;


    Douglas Bertelli

    sexta-feira, 19 de outubro de 2012 17:34
  • Basta você passar o retorno da sua consulta no banco para o datasource do repeat

    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 19 de outubro de 2012 17:43
  • Mas cada imagem lateral dessa terá seu próprio link, para ver a imagem em tamanho maior.

    com o repeat eu teria como saber qual é o Id da imagem? =\


    Douglas Bertelli

    sexta-feira, 19 de outubro de 2012 17:45
  • sim, basta utilizar o evento ItemDataBound do repeater.

    mas você vai precisar usar o controle HyperLink para fazer essa navegação

    neste link tem um exemplo de como usar este evento

    http://www.codeguru.com/csharp/.net/net_asp/tutorials/article.php/c12065/ASPNET-Tip-Use-the-ItemDataBound-Event-of-a-Repeater.htm


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 19 de outubro de 2012 17:52
  • Bruno, a estrutura da minha table está assim>:

    <asp:imagem no lugar da imagem

    <asp:Label1 para receber o texto.

    Quando eu jogar o resultado da query no datasource da repeat, como eu vou fazer para jogar o resultado dentro destes componentes?


    Douglas Bertelli

    sexta-feira, 19 de outubro de 2012 18:28
  • Você pode usar

    <%# DataBinder.Eval(Container.DataItem, "CAMPODOCODIGO") %>

    no lugar onde quer que apareça a informação

    Ou através do método ItemDataBound


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    • Marcado como Resposta Douglas Bertelli sexta-feira, 19 de outubro de 2012 19:25
    sexta-feira, 19 de outubro de 2012 18:44
  • Crie primeiro o seu html, Ex.:

    <asp:Repeater ID="rptClientes" runat="server">
            <ItemTemplate>
                <asp:Image ID="lblCliente" runat="server" ImageUrl='<%# DataBinder.Eval(Container.DataItem, @"CAMPODAIMAGEM") %>'/> |
                <asp:Label ID="Label1" runat="server"><%# DataBinder.Eval(Container.DataItem, "CAMPOTEXTO") %></asp:Label><br>
            </ItemTemplate>
        </asp:Repeater>

    no seu code behind faça

    if (!IsPostBack)
                {
                    rptClientes.DataSource = ListarClientes(); // Utilize o método que você usa para fazer consultas
                    rptClientes.DataBind();
                }


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 19 de outubro de 2012 18:57
  • Opaa.. obrigado por tda a ajuda Bruno, mas tive uma idéia aqui e achei mais simples de resolver..

    na webpage, criei uma DIV  e um literal

                    <div id="bg1_namidia">
                        <asp:Literal ID="Lit_Ct_Table" runat="server"></asp:Literal>
                    </div>

    no code ..

                    //Trazendo todas as mídias
                    DALBannerMidia dbm = new DALBannerMidia();
                    List<BannerMidia> bm = dbm.GetAllBannerMida();
                    foreach (BannerMidia img in bm)
                    {

    //Aki dentro vai joga outra div igual a outra que criamos e vai desenhando pelo css, trazendo o conteúdo aí..

                        Lit_Ct_Table.Text += "<div class='NaMidia'>";
                        Lit_Ct_Table.Text += "<img src='" + img.Imagemmidia + "' />";
                        Lit_Ct_Table.Text += "<p>" + img.Conteudo + "</p>";                    
                        Lit_Ct_Table.Text += "</div>";
                    }
                    //##

    SHow de bola né, achei mais prático que o repeat =)


    Douglas Bertelli

    sexta-feira, 19 de outubro de 2012 19:24