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 ID | Order Date | Customer ID | Ship Address |
|---|---|---|---|
| 11060 | 4/30/1998 12:00:00 AM | FRANS | Via Monte Bianco 34 |
| 11061 | 4/30/1998 12:00:00 AM | GREAL | 2732 Baker Blvd. |
| 11062 | 4/30/1998 12:00:00 AM | REGGC | Strada Provinciale 124 |
| 11063 | 4/30/1998 12:00:00 AM | HUNGO | 8 Johnstown Road |
| 11064 | 5/1/1998 12:00:00 AM | SAVEA | 187 Suffolk Ln. |
| 11065 | 5/1/1998 12:00:00 AM | LILAS | Carrera 52 con Ave. Bolívar #65-98 Llano Largo |
| 11066 | 5/1/1998 12:00:00 AM | WHITC | 1029 - 12th Ave. S. |
| 11067 | 5/4/1998 12:00:00 AM | DRACD | Walserweg 21 |
| 11068 | 5/4/1998 12:00:00 AM | QUEEN | Alameda dos Canàrios, 891 |
| 11069 | 5/4/1998 12:00:00 AM | TORTU | Avda. Azteca 123 |
| 11070 | 5/5/1998 12:00:00 AM | LEHMS | Magazinweg 7 |
| 11071 | 5/5/1998 12:00:00 AM | LILAS | Carrera 52 con Ave. Bolívar #65-98 Llano Largo |
| 11072 | 5/5/1998 12:00:00 AM | ERNSH | Kirchgasse 6 |
| 11073 | 5/5/1998 12:00:00 AM | PERIC | Calle Dr. Jorge Cash 321 |
| 11074 | 5/6/1998 12:00:00 AM | SIMOB | Vinbæltet 34 |
| 11075 | 5/6/1998 12:00:00 AM | RICSU | Starenweg 5 |
| 11076 | 5/6/1998 12:00:00 AM | BONAP | 12, rue des Bouchers |
| 11077 | 5/6/1998 12:00:00 AM | RATTC | 2817 Milton Dr. |
jQuery Ajax:
Standard url paging:
MicrosoftAjax:
<%@ 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);
}
}