MvcPager分页控件
MvcPager 分页示例—使用多个MvcPager为不同的数据分页
本示例演示如何在同一页面上使用多个MvcPager为不同的数据分页而互不干扰。
编号从小到大排序的订单:
使用名为“Default”的路由,分页参数名为id| 订单编号 | 订单日期 | 顾客编号 | 收货地址 |
|---|---|---|---|
| 10760 | 1997/12/1 0:00:00 | MAISD | Rue Joseph-Bens 532 |
| 10761 | 1997/12/2 0:00:00 | RATTC | 2817 Milton Dr. |
| 10762 | 1997/12/2 0:00:00 | FOLKO | Åkergatan 24 |
| 10763 | 1997/12/3 0:00:00 | FOLIG | 184, chaussée de Tournai |
| 10764 | 1997/12/3 0:00:00 | ERNSH | Kirchgasse 6 |
| 10765 | 1997/12/4 0:00:00 | QUICK | Taucherstraße 10 |
| 10766 | 1997/12/5 0:00:00 | OTTIK | Mehrheimerstr. 369 |
| 10767 | 1997/12/5 0:00:00 | SUPRD | Boulevard Tirou, 255 |
| 10768 | 1997/12/8 0:00:00 | AROUT | Brook Farm Stratford St. Mary |
| 10769 | 1997/12/8 0:00:00 | VAFFE | Smagsloget 45 |
| 10770 | 1997/12/9 0:00:00 | HANAR | Rua do Paço, 67 |
| 10771 | 1997/12/10 0:00:00 | ERNSH | Kirchgasse 6 |
| 10772 | 1997/12/10 0:00:00 | LEHMS | Magazinweg 7 |
| 10773 | 1997/12/11 0:00:00 | ERNSH | Kirchgasse 6 |
| 10774 | 1997/12/11 0:00:00 | FOLKO | Åkergatan 24 |
| 10775 | 1997/12/12 0:00:00 | THECR | 55 Grizzly Peak Rd. |
| 10776 | 1997/12/15 0:00:00 | ERNSH | Kirchgasse 6 |
| 10777 | 1997/12/15 0:00:00 | GOURL | Av. Brasil, 442 |
| 10778 | 1997/12/16 0:00:00 | BERGS | Berguvsvägen 8 |
| 10779 | 1997/12/16 0:00:00 | MORGK | Heerstr. 22 |
共16页318条订单
编号从大到小排序的订单:
分页参数名为page,与路由中的参数id不匹配,故参数被自动添加为url参数(page=n)| 订单编号 | 订单日期 | 顾客编号 | 收货地址 |
|---|---|---|---|
| 11077 | 1998/5/6 0:00:00 | RATTC | 2817 Milton Dr. |
| 11076 | 1998/5/6 0:00:00 | BONAP | 12, rue des Bouchers |
| 11075 | 1998/5/6 0:00:00 | RICSU | Starenweg 5 |
| 11074 | 1998/5/6 0:00:00 | SIMOB | Vinbæltet 34 |
| 11073 | 1998/5/5 0:00:00 | PERIC | Calle Dr. Jorge Cash 321 |
| 11072 | 1998/5/5 0:00:00 | ERNSH | Kirchgasse 6 |
| 11071 | 1998/5/5 0:00:00 | LILAS | Carrera 52 con Ave. Bolívar #65-98 Llano Largo |
| 11070 | 1998/5/5 0:00:00 | LEHMS | Magazinweg 7 |
| 11069 | 1998/5/4 0:00:00 | TORTU | Avda. Azteca 123 |
| 11068 | 1998/5/4 0:00:00 | QUEEN | Alameda dos Canàrios, 891 |
| 11067 | 1998/5/4 0:00:00 | DRACD | Walserweg 21 |
| 11066 | 1998/5/1 0:00:00 | WHITC | 1029 - 12th Ave. S. |
| 11065 | 1998/5/1 0:00:00 | LILAS | Carrera 52 con Ave. Bolívar #65-98 Llano Largo |
| 11064 | 1998/5/1 0:00:00 | SAVEA | 187 Suffolk Ln. |
| 11063 | 1998/4/30 0:00:00 | HUNGO | 8 Johnstown Road |
| 11062 | 1998/4/30 0:00:00 | REGGC | Strada Provinciale 124 |
| 11061 | 1998/4/30 0:00:00 | GREAL | 2732 Baker Blvd. |
| 11060 | 1998/4/30 0:00:00 | FRANS | Via Monte Bianco 34 |
| 11059 | 1998/4/29 0:00:00 | RICAR | Av. Copacabana, 267 |
| 11058 | 1998/4/29 0:00:00 | BLAUS | Forsterstr. 57 |
共16页318条订单
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyOrdersModel>" %>
<%@ Import Namespace="MvcPagerSample.Models" %>
<%@ Import Namespace="Webdiyer.WebControls.Mvc" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
MultiplePagers
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>MvcPager 分页示例—使用多个MvcPager为不同的数据分页</h2>
<div>本示例演示如何在同一页面上使用多个MvcPager为不同的数据分页而互不干扰。</div><br />
<h3>编号从小到大排序的订单:</h3>
使用名为“Default”的路由,分页参数名为id
<table width="98%">
<tr><th>订单编号</th><th>订单日期</th><th>顾客编号</th><th>收货地址</th></tr>
<%foreach (Order od in Model.AscOrders)
{
%>
<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.AscOrders.TotalPageCount+"页"+Model.DescOrders.TotalItemCount+"条订单" %></div><div style="float:right">
<%=Html.Pager(Model.AscOrders,new PagerOptions{PageIndexParameterName="id"},"Default",null)%></div>
<br /><br />
<h3>编号从大到小排序的订单:</h3>
分页参数名为page,与路由中的参数id不匹配,故参数被自动添加为url参数(page=n)
<table width="98%">
<tr><th>订单编号</th><th>订单日期</th><th>顾客编号</th><th>收货地址</th></tr>
<%foreach(Order od in Model.DescOrders)
{
%>
<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.DescOrders.TotalPageCount+"页"+Model.AscOrders.TotalItemCount+"条订单" %></div><div style="float:right">
<%=Html.Pager(Model.DescOrders,new PagerOptions{PageIndexParameterName="page"})%></div>
</asp:Content>
public ActionResult MultiplePagers(int? id)
{
using (var db = new MvcPagerSampleDataContext())
{
int pageIndex;
int.TryParse(Request.QueryString["page"], out pageIndex);
MyOrdersModel model = new MyOrdersModel();
//按编号从小到大排序的订单,使用路由中的id参数做为页索引参数
model.AscOrders= db.Orders.ToPagedList(id??1, 20);
//按编号从大到小排序的订单,使用url参数page做为页索引参数
model.DescOrders = db.Orders.OrderByDescending(o => o.OrderID).ToPagedList(pageIndex, 20);
return View(model);
}
}
