Для пейджинга на стороне сервера, я использую https://github.com/dvsspr/Halaman. Он еще не задокументирован, но он очень гибкий и использует свободную конфигурацию.
Один очень простой вариант использования для вас.
@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>
}
Вот так. IMHO, кодовая база может быть взломана легко - на всякий случай, если вы хотите реализовать гибридный пейджинг.
Вы хотите разместить данные на стороне клиента или сервера? –
jqGrid OR Knockout.js для победы ... –
@ShaneC: Я упомянул ExtJs, так как мы говорим о тяжеловесах. :) – codenheim