Ajax paging with jQuery

This sample demonstrate how to implement ajax paging with MvcPager and jQuery script library.

Syntax:<%=Html.AjaxPager(Model, "Paging",null,new PagerOptions{ShowDisabledPagerItems = false}, new AjaxOptions{ UpdateTargetId = "dvOrders" },null%>

Order IDOrder DateCustomer IDShip Address
109203/3/1998 12:00:00 AMAROUTBrook Farm Stratford St. Mary
109213/3/1998 12:00:00 AMVAFFESmagsloget 45
109223/3/1998 12:00:00 AMHANARRua do Paço, 67
109233/3/1998 12:00:00 AMLAMAI1 rue Alsace-Lorraine
109243/4/1998 12:00:00 AMBERGSBerguvsvägen 8
109253/4/1998 12:00:00 AMHANARRua do Paço, 67
109263/4/1998 12:00:00 AMANATRAvda. de la Constitución 2222
109273/5/1998 12:00:00 AMLACOR67, avenue de l'Europe
109283/5/1998 12:00:00 AMGALEDRambla de Cataluña, 23
109293/5/1998 12:00:00 AMFRANKBerliner Platz 43
109303/6/1998 12:00:00 AMSUPRDBoulevard Tirou, 255
109313/6/1998 12:00:00 AMRICSUStarenweg 5
109323/6/1998 12:00:00 AMBONAP12, rue des Bouchers
109333/6/1998 12:00:00 AMISLATGarden House Crowther Way
109343/9/1998 12:00:00 AMLEHMSMagazinweg 7
109353/9/1998 12:00:00 AMWELLIRua do Mercado, 12
109363/9/1998 12:00:00 AMGREAL2732 Baker Blvd.
109373/10/1998 12:00:00 AMCACTUCerrito 333
109383/10/1998 12:00:00 AMQUICKTaucherstraße 10
109393/10/1998 12:00:00 AMMAGAAVia Ludovico il Moro 22

Ajax paging (only refresh part of page and url does not change):

First  Prev  ...  4  5  6  7  8  9  10  11  12  13  ...  Next  Last

Standard url paging (refresh whole page and url changed)

First  Prev  ...  4  5  6  7  8  9  10  11  12  13  ...  Next  Last
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
Inherits="System.Web.Mvc.ViewPage<PagedList<Order>>" %>
<%@ Import Namespace="Webdiyer.Mvc2Demo.Models"%>
<%@ Import Namespace="Webdiyer.WebControls.Mvc"%>
 
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Ajax paging with jQuery 
</asp:Content>
 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script language="javascript" type="text/javascript" 
src="<%=Url.Content("~/Scripts/jquery-1.4.2.min.js") %>"></script>
    <h2>Ajax paging with jQuery </h2>
    <div>This sample demonstrate how to implement ajax paging with MvcPager 
    and <a href="http://www.jquery.com" target="_blank">jQuery</a> script library.</div><br />
<%Html.RenderPartial("UCJqOrderList", Model); %>
</asp:Content>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PagedList<Order>>" %>
<%@ Import Namespace="Webdiyer.Mvc2Demo.Models"%>
<%@ Import Namespace="Webdiyer.WebControls.Mvc"%>
<div id="dvOrders">
<table width="98%">
<tr><th>Order ID</th><th>Order Date</th><th>Customer ID</th>
<th>Ship Address</th></tr>
<%foreach(Order od in Model)
 {
     %>
     <tr><td><%=od.OrderID %></td><td><%=od.OrderDate.ToString() %></td>
     <td><%=od.CustomerID %></td><td><%=od.ShipAddress %></td></tr>
     <%
 } %>
</table>
<p>Ajax paging (only refresh part of page and url does not change):'a3?</p>
<%=Html.AjaxPager(Model, new PagerOptions() { PageIndexParameterName = "id", 
    ShowDisabledPagerItems = false, AlwaysShowFirstLastPageNumber = true }, 
    new AjaxOptions() { UpdateTargetId = "dvOrders"})%>
<p>Standard url paging (refresh whole page and url changed)</p>
<%=Html.Pager(Model, new PagerOptions { PageIndexParameterName = "id", 
    ShowDisabledPagerItems = false, AlwaysShowFirstLastPageNumber = true })%>
</div>
        public ActionResult JqAjaxOrders(int? id)
        {
            using (var db = new MvcPagerDemoDataContext())
            {
                PagedList<Order> orders = db.Orders.ToPagedList(id ?? 1, 20);
                if (Request.IsAjaxRequest())
                    return PartialView("UCJqOrderList", orders);
                return View(orders);
            }
        }