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 |
|---|---|---|---|
| 10760 | 12/1/1997 12:00:00 AM | MAISD | Rue Joseph-Bens 532 |
| 10761 | 12/2/1997 12:00:00 AM | RATTC | 2817 Milton Dr. |
| 10762 | 12/2/1997 12:00:00 AM | FOLKO | Åkergatan 24 |
| 10763 | 12/3/1997 12:00:00 AM | FOLIG | 184, chaussée de Tournai |
| 10764 | 12/3/1997 12:00:00 AM | ERNSH | Kirchgasse 6 |
| 10765 | 12/4/1997 12:00:00 AM | QUICK | Taucherstraße 10 |
| 10766 | 12/5/1997 12:00:00 AM | OTTIK | Mehrheimerstr. 369 |
| 10767 | 12/5/1997 12:00:00 AM | SUPRD | Boulevard Tirou, 255 |
| 10768 | 12/8/1997 12:00:00 AM | AROUT | Brook Farm Stratford St. Mary |
| 10769 | 12/8/1997 12:00:00 AM | VAFFE | Smagsloget 45 |
| 10770 | 12/9/1997 12:00:00 AM | HANAR | Rua do Paço, 67 |
| 10771 | 12/10/1997 12:00:00 AM | ERNSH | Kirchgasse 6 |
| 10772 | 12/10/1997 12:00:00 AM | LEHMS | Magazinweg 7 |
| 10773 | 12/11/1997 12:00:00 AM | ERNSH | Kirchgasse 6 |
| 10774 | 12/11/1997 12:00:00 AM | FOLKO | Åkergatan 24 |
| 10775 | 12/12/1997 12:00:00 AM | THECR | 55 Grizzly Peak Rd. |
| 10776 | 12/15/1997 12:00:00 AM | ERNSH | Kirchgasse 6 |
| 10777 | 12/15/1997 12:00:00 AM | GOURL | Av. Brasil, 442 |
| 10778 | 12/16/1997 12:00:00 AM | BERGS | Berguvsvägen 8 |
| 10779 | 12/16/1997 12:00:00 AM | MORGK | Heerstr. 22 |
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);
}
}