How to make a pager without a gridview? [duplicate]

1

I have a system in asp net mvc, in one of the screens is displayed several items, the select to get them from the bank is:

Select top 20 from Produtos

As shown, it displays only the first twenty products. The products are rendered inside several divs, fed by a foreach. Something like this:

foreach(var itens in produtos){
<div class="col-md-12">
<div class="col-md-6" id="produtos">
@itens.nomeProduto
</div>
</div>
}

But I wanted to bring all the products, and only display twenty, and make a kind of pager in the footer.

The question is, after I bring all the products, how can I get the first 20, and then the next 20, and then the next ones and so on?

    
asked by anonymous 10.07.2014 / 22:16

1 answer

2

Use the following package:

  

link

Usage:

public ViewResult Index(int? pagina)
{
    var produtos = contexto.Produtos; //traga todos os produtos aqui

    var numeroDaPagina = pagina ?? 1; // Se for nulo, coloca na primeira.
    var umaPaginaDeProdutos = produtos.ToPagedList(numeroDaPagina, 20); // 20 produtos apenas

    ViewBag.UmaPaginaDeProdutos = umaPaginaDeProdutos;
    return View();
}

View:

@{
    ViewBag.Title = "Lista de Produtos"
}
@using PagedList.Mvc;
@using PagedList;

<h2>Lista de Produtos</h2>
@foreach(var item in ViewBag.UmaPaginaDeProdutos) {
    <div class="col-md-12">
        <div class="col-md-6" id="produtos">
            @item.nomeProduto
        </div>
    </div>
}

@* Navegador de Páginas *@
@Html.PagedListPager( (IPagedList)ViewBag.UmaPaginaDeProdutos, page => Url.Action("Index", new { pagina = page }) )

More example? link

    
10.07.2014 / 22:39