Using custom route
This sample demonstrate how to use custom route in MvcPager, syntax:
<%=Html.Pager(Model,null,"Paging",null ) %>
<%=Html.Pager(Model,null,"Paging",null ) %>
Employee NO.:
Employee 1 Employee 2 Employee 3 Employee 4 Employee 5 Employee 6 Employee 7 Employee 8 Employee 9
| Order ID | Order Date | Customer ID | Ship Address |
|---|---|---|---|
| 10773 | 12/11/1997 12:00:00 AM | ERNSH | Kirchgasse 6 |
| 10776 | 12/15/1997 12:00:00 AM | ERNSH | Kirchgasse 6 |
| 10785 | 12/18/1997 12:00:00 AM | GROSR | 5ª Ave. Los Palos Grandes |
| 10788 | 12/22/1997 12:00:00 AM | QUICK | Taucherstraße 10 |
| 10789 | 12/22/1997 12:00:00 AM | FOLIG | 184, chaussée de Tournai |
| 10792 | 12/23/1997 12:00:00 AM | WOLZA | ul. Filtrowa 68 |
| 10800 | 12/26/1997 12:00:00 AM | SEVES | 90 Wadhurst Rd. |
| 10813 | 1/5/1998 12:00:00 AM | RICAR | Av. Copacabana, 267 |
| 10821 | 1/8/1998 12:00:00 AM | SPLIR | P.O. Box 555 |
| 10825 | 1/9/1998 12:00:00 AM | DRACD | Walserweg 21 |
| 10827 | 1/12/1998 12:00:00 AM | BONAP | 12, rue des Bouchers |
| 10834 | 1/15/1998 12:00:00 AM | TRADH | Av. Inês de Castro, 414 |
| 10835 | 1/15/1998 12:00:00 AM | ALFKI | Obere Str. 57 |
| 10842 | 1/20/1998 12:00:00 AM | TORTU | Avda. Azteca 123 |
| 10850 | 1/23/1998 12:00:00 AM | VICTE | 2, rue du Commerce |
| 10859 | 1/29/1998 12:00:00 AM | FRANK | Berliner Platz 43 |
| 10877 | 2/9/1998 12:00:00 AM | RICAR | Av. Copacabana, 267 |
| 10886 | 2/13/1998 12:00:00 AM | HANAR | Rua do Paço, 67 |
| 10888 | 2/16/1998 12:00:00 AM | GODOS | C/ Romero, 33 |
| 10894 | 2/18/1998 12:00:00 AM | SAVEA | 187 Suffolk Ln. |
3 page(s) 49 orders
<%@ 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">
using custom route
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Using custom route</h2>
<div>This sample demonstrate how to use custom route in MvcPager, syntax:<br />
<%=Html.Pager(Model,null,"Paging",null ) %>
</div><br />
<div>Employee NO.:
<%
int empId = Convert.ToInt32(ViewContext.RouteData.Values["employeeId"]);
for(int i=1;i<10;i++)
{
if (empId == i)
Response.Write("Employee " + i);
else
Response.Write(Html.RouteLink("Employee " + i,"Paging",
new RouteValueDictionary { { "action", "CustomRouteTable" },
{ "controller", "Orders" }, { "employeeId", i },
{ "pageIndex", 1 } }, null));
Response.Write(" ");
} %>
</div>
<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>
<div style="float:left;width:30%"><%=Model.TotalPageCount+" page(s) "+Model.TotalItemCount+" orders" %>
</div><div style="float:right">
<%=Html.Pager(Model,null,"Paging",null )%></div>
</asp:Content>
public ActionResult CustomRouteTable(int employeeId, int? pageIndex)
{
using (var db = new MvcPagerDemoDataContext())
{
PagedList<Order> pagedOrders =
db.Orders.Where(o => o.EmployeeID == employeeId).ToPagedList(pageIndex ?? 1, 20);
return View(pagedOrders);
}
}
//custom route for paging demo
routes.MapRoute("Paging", "{controller}/{action}/employee_{employeeId}/page_{pageIndex}",
new
{
controller = "Orders",
action = "CustomRouteTable",
employeeId = 1,
pageIndex = UrlParameter.Optional
});