none
DataPager sem ListView ou GridView. RRS feed

  • Pergunta

  • Boa noite!

    Tenho um código mais ou menos assim:

    CS

    string divItem = string.Empty;
    string divImagem = string.Empty;
    
    foreach (Carousel img in dc.Carousels.ToList())
    {
      divItem += @"<div class='texto'> <div class='item'>";
    
      divImagem = @"<img src='";
    
      divImagem += img.ImagemUrl + "' /> </div> ";
    
      divItem += divImagem;
    }
    
    divItensSite.InnerHtml = divItem + "</div>";

    ASPX

    <div id="divItensSite" runat="server" />

    Vou percorrer todos os itens através de um Foreach e montar a estrutura das divs. Minha dúvida é a seguinte. Se o Foreach me retornar uns 50 itens, tem como eu criar um DataPager para os itens aparecerem de 10 em 10 e formar uma página com números?

    EX:

    [1] [2] [3] [4] [5]

    OBS: Não posso usar ListView e nem GridView, pois o site é responsivo e esses componentes acabam "engessando" o site.

    Agradeço pela ajuda.

    quinta-feira, 20 de fevereiro de 2014 23:04

Respostas

  • UCNavigationGridView é o nome de um componente Control! como é um exemplo ali tem botões!!!

    e neles que você deve prestar atenção!

    ButtonFirstEnabled = !model.IsFirstPage;

    http://pagedlist.codeplex.com/ nesse link tem a classe que pagina seus resultado e ali no lugar da lista se tem que usar ele 

    assim:

    int pagina = 1; // aqui é o controle que você deve guardar para saber qual é a próxima pagina ou voltar !!!
    
    List<string> lista = new List<string>();
    
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    
    var model = lista.ToPagedList(1, 5);
    
    foreach (String item in model)
    {
    	
    }
    
    ButPrimeiro.Enabled = model.IsFirstPage;
    ButVoltar.Enabled = model.HasPreviousPage;
    ButAvancar.Enabled = model.HasNextPage;
    ButUltimo.Enabled = model.IsLastPage;

    Perceba que o link passado tem o exemplo é só segui-lo !!!

    Sorte!!!



    Fulvio Cezar Canducci Dias

    domingo, 23 de fevereiro de 2014 15:32

Todas as Respostas

  • Para Paginar use essa classe: http://pagedlist.codeplex.com/

    Exemplo de código 

    IPagedList model = RepVendedor.QueryFast()
                    .OrderBy(x => x.RazaoSocial)
                    .ToPagedList(1, 10);

    Ai ele pagina para você mas claro que você tem que colocar botões e usar o model para fazer isso

    UCNavigationGridView.ButtonFirstEnabled = !model.IsFirstPage;
    UCNavigationGridView.ButtonBackEnabled = model.HasPreviousPage;
    UCNavigationGridView.ButtonNextEnabled = model.HasNextPage;
    UCNavigationGridView.ButtonLastEnabled = !model.IsLastPage;
    UCNavigationGridView.PageTotal = model.PageCount;
    isso ai são os botões de controle são 4 !!!


    Fulvio Cezar Canducci Dias


    sexta-feira, 21 de fevereiro de 2014 03:59
  • Olá amigo!

    Tentei de diversas formas implementar o que você sugeriu, mas não consegui fazer funcionar, poderia me dar um exemplo? Vou simular uma situação de paginação, como ficaria implementando o IPagedList?

    Supondo que eu tenha esse código e quisesse criar paginas de 5 em 5 produtos.

    ASPX:

     <div id="divHtml" runat="server" />


    CS:

     List<string> lista = new List<string>();
    
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
       lista.Add("Imagem.jpg");
    
     foreach (string img in lista)
     {
      divHtml.InnerHtml += "<img src='" + imagem + "'/></br>";
     }

    No link que você me passou eu não consegui achar nada parecido com esse exemplo que você passou. E o que seria esse UCNavigationGridView?

    Agradeço a ajuda

    domingo, 23 de fevereiro de 2014 13:19
  • UCNavigationGridView é o nome de um componente Control! como é um exemplo ali tem botões!!!

    e neles que você deve prestar atenção!

    ButtonFirstEnabled = !model.IsFirstPage;

    http://pagedlist.codeplex.com/ nesse link tem a classe que pagina seus resultado e ali no lugar da lista se tem que usar ele 

    assim:

    int pagina = 1; // aqui é o controle que você deve guardar para saber qual é a próxima pagina ou voltar !!!
    
    List<string> lista = new List<string>();
    
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    lista.Add("Imagem.jpg");
    
    var model = lista.ToPagedList(1, 5);
    
    foreach (String item in model)
    {
    	
    }
    
    ButPrimeiro.Enabled = model.IsFirstPage;
    ButVoltar.Enabled = model.HasPreviousPage;
    ButAvancar.Enabled = model.HasNextPage;
    ButUltimo.Enabled = model.IsLastPage;

    Perceba que o link passado tem o exemplo é só segui-lo !!!

    Sorte!!!



    Fulvio Cezar Canducci Dias

    domingo, 23 de fevereiro de 2014 15:32
  • Amigo, deu certo. Agradeço ajuda.

    Abraço!

    quinta-feira, 13 de março de 2014 22:55