Fork me on GitHub

MvcPager demo - Multiple MvcPagers

This sample demonstrates using multiple MvcPagers on a single page.

Note: when multiple MvcPagers are used on a single page, the property value of PagerOptions.PageIndexParameterName for each MvcPager that page for the different data must be unique, otherwise the current page index of all MvcPagers will be the same after paging.

Order ID Customer ID Company Name Employee Name
10760 MAISD Maison Dewey Margaret Peacock
10761 RATTC Rattlesnake Canyon Grocery Steven Buchanan
10762 FOLKO Folk och fä HB Janet Leverling
10763 FOLIG Folies gourmandes Janet Leverling
10764 ERNSH Ernst Handel Michael Suyama
First Prev 1 2 3 4 5 6 7 8 9 10 ... Next Last 

Order ID Customer ID Company Name Employee Name
10760 MAISD Maison Dewey Margaret Peacock
10761 RATTC Rattlesnake Canyon Grocery Steven Buchanan
10762 FOLKO Folk och fä HB Janet Leverling
10763 FOLIG Folies gourmandes Janet Leverling
10764 ERNSH Ernst Handel Michael Suyama
First Prev 1 2 3 4 5 6 7 8 9 10 ... Next Last 

View:

         
@model Tuple<PagedList<Order>,PagedList<Order>>
@{Html.RenderPartial("_DataTable", Model.Item1);}
@Html.Pager(Model.Item1).Options(o => o.SetPagerItemTemplate("{0} "))
<hr />
@{Html.RenderPartial("_DataTable",Model.Item2);}
@Html.Pager(Model.Item2, new PagerOptions { PageIndexParameterName = "id", RouteName = "MvcPager_Default", PagerItemTemplate = "{0}&nbsp;" })

_DataTable.cshtml:

@model PagedList<order>
<table class="table table-striped table-bordered">
    <tr>
    <th class="nowrap">
            @Html.DisplayNameFor(model => model.OrderId)
        </th>
    <th class="nowrap">
            @Html.DisplayNameFor(model => model.CustomerId)
        </th>
    <th class="nowrap">
            @Html.DisplayNameFor(model => model.CompanyName)
        </th>
    <th class="nowrap">
            @Html.DisplayNameFor(model => model.EmployeeName)
        </th>
    </tr>
    @foreach (var item in Model)
    {
    <tr>
    <td>
                @Html.DisplayFor(modelItem => item.OrderId)
            </td>
    <td>
                @Html.DisplayFor(modelItem => item.CustomerId)
            </td>
    <td>
                @Html.DisplayFor(modelItem => item.CompanyName)
            </td>
    <td>
                @Html.DisplayFor(modelItem => item.EmployeeName)
            </td>
        </tr>
    }
</table>

Model:

    public class Order
    {
        [Display(Name = "Order ID")]
        public int OrderId { get; set; }
        [Display(Name = "Customer ID"),StringLength(20)]
        public string CustomerId { get; set; }
        [Display(Name = "Order Date")]
        public DateTime OrderDate { get; set; }
        [Display(Name = "Company Name"), StringLength(20)]
        public string CompanyName { get; set; }
        [Display(Name = "Employee Name"), StringLength(20)]
        public string EmployeeName { get; set; }
    }

Controller:

        
        public ActionResult MultipleMvcPagers(int id = 1,int pageIndex=1)
        {
            using (var db = new DataContext())
            {
                var pageSize = 5;
                var model = new Tuple<PagedList<Order>, PagedList<Order>>(
                    db.Orders.OrderBy(o => o.OrderId).ToPagedList(pageIndex, pageSize),
                    db.Orders.OrderBy(o => o.OrderId).ToPagedList(id, pageSize));
                return View(model);
            }
        }