For server side paging, I use https://github.com/dvsspr/Halaman . It has not yet been documented, but it is very flexible and uses a smooth configuration.
One simple use case for you.
@Controller
public ActionResult Index(AdminPageInfo page, SortInfo sort) { PagedData<Account> model = accountRepository.Get().AsPagedData(page, sort); return (model.IsValid) ? View(model) : View("_Error"); }
@View
@model PagedData<Account> @{ ViewBag.Title = "Account Index"; } <p> Total records: <strong>@Model.TotalRows</strong> <br /> Total pages: <strong>@Model.TotalPages</strong> <br /> Total records in current page: <strong>@Model.TotalRowsInPage</strong> </p> @Html.Pager(Model) @Html.Sizer(Model) @* Page size changer helper =) *@ @* Put a dot after the closing brace and you will see the available options. *@ <h3>Sorter</h3> <li> <ul>@(Html.SortLink<Account>(zz => zz.Id, Model, "User Id"))</ul> <ul>@(Html.SortLink<Account>(zz => zz.UserName, Model, "User Name"))</ul> <ul>@(Html.SortLink<Account>(zz => zz.FullName, Model, "Full Name"))</ul> </li> @foreach (var acc in Model) { <p> User name: @acc.UserName <br /> Full name: @acc.FullName </p> }
What is it. IMHO, the code base can be easily cracked - just in case you want to implement hybrid paging.
source share