Input or select page index

MvcPager can be configured to allow use input or select page index and jump directly to that page, user entered page index is validated in the client.

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

jQuery Ajax:

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

Standard url paging:

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

MicrosoftAjax:

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<Webdiyer.WebControls.Mvc.PagedList<Order>>" %>
<%@ Import Namespace="Webdiyer.Mvc2Demo.Models" %>
 
 
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    input or select page index
</asp:Content>
 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<style type="text/css">
.mvcPager{font-size:9pt}
.mvcPager input[type=text]{width:28px}
.mvcPager .gotoPage{float:right}
</style>
<script language="javascript" type="text/javascript" 
src="<%=Url.Content("~/Scripts/jquery-1.4.2.min.js") %>"></script>
<script language="javascript" type="text/javascript" 
src="<%=Url.Content("~/Scripts/MicrosoftAjax.js") %>"></script>
<script language="javascript" type="text/javascript" 
src="<%=Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>"></script>
 
    <h2>Input or select page index</h2>
    <div>MvcPager can be configured to allow use input or select page index 
    and jump directly to that page, user entered page index is validated in the client.</div>
    <br />
<%
    Html.RenderPartial("UCPageIndexBox"); %>
</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>jQuery Ajax:</p>
<%=Html.AjaxPager(Model, new PagerOptions() { CssClass = "mvcPager", 
    PageIndexParameterName = "id", ShowPageIndexBox = true, 
    PageIndexBoxType = PageIndexBoxType.DropDownList, 
    ShowGoButton = false,PageIndexBoxWrapperFormatString="Go to page{0}" }, 
    new AjaxOptions() { UpdateTargetId = "dvOrders" })%>
<p>Standard url paging:</p>
<%=Html.Pager(Model, new PagerOptions { CssClass = "mvcPager", 
    PageIndexParameterName = "id", ShowPageIndexBox = true, 
    PageIndexBoxWrapperFormatString = "Go to page{0}", 
    GoToPageSectionWrapperFormatString = "<span class=\"gotoPage\">{0}</span>" })%>
<p>MicrosoftAjax:
<%=Html.AjaxPager(Model, new PagerOptions() { CssClass = "mvcPager", 
    PageIndexParameterName = "id", ShowPageIndexBox = true,
    ShowGoButton=false }, new AjaxOptions() { UpdateTargetId = "dvOrders" })%>
</p></div>
        public ActionResult PageIndexBox(int? id)
        {
            Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
            Response.Cache.SetExpires(DateTime.Today.AddYears(-1));
            using (var db = new MvcPagerDemoDataContext())
            {
                PagedList<Order> orders = db.Orders.ToPagedList(id ?? 1, 20);
                if (Request.IsAjaxRequest())
                    return PartialView("UCPageIndexBox", orders);
                return View(orders);
            }
        }