MvcPager分页控件
MvcPager 分页示例—使用多个MvcPager为不同的数据分页
本示例演示如何在同一页面上使用多个MvcPager为不同的数据分页而互不干扰。
编号从小到大排序的订单:
使用名为“Default”的路由,分页参数名为id| 订单编号 | 订单日期 | 顾客编号 | 收货地址 |
|---|---|---|---|
| 10820 | 1998/1/7 0:00:00 | RATTC | 2817 Milton Dr. |
| 10821 | 1998/1/8 0:00:00 | SPLIR | P.O. Box 555 |
| 10822 | 1998/1/8 0:00:00 | TRAIH | 722 DaVinci Blvd. |
| 10823 | 1998/1/9 0:00:00 | LILAS | Carrera 52 con Ave. Bolívar #65-98 Llano Largo |
| 10824 | 1998/1/9 0:00:00 | FOLKO | Åkergatan 24 |
| 10825 | 1998/1/9 0:00:00 | DRACD | Walserweg 21 |
| 10826 | 1998/1/12 0:00:00 | BLONP | 24, place Kléber |
| 10827 | 1998/1/12 0:00:00 | BONAP | 12, rue des Bouchers |
| 10828 | 1998/1/13 0:00:00 | RANCH | Av. del Libertador 900 |
| 10829 | 1998/1/13 0:00:00 | ISLAT | Garden House Crowther Way |
| 10830 | 1998/1/13 0:00:00 | TRADH | Av. Inês de Castro, 414 |
| 10831 | 1998/1/14 0:00:00 | SANTG | Erling Skakkes gate 78 |
| 10832 | 1998/1/14 0:00:00 | LAMAI | 1 rue Alsace-Lorraine |
| 10833 | 1998/1/15 0:00:00 | OTTIK | Mehrheimerstr. 369 |
| 10834 | 1998/1/15 0:00:00 | TRADH | Av. Inês de Castro, 414 |
| 10835 | 1998/1/15 0:00:00 | ALFKI | Obere Str. 57 |
| 10836 | 1998/1/16 0:00:00 | ERNSH | Kirchgasse 6 |
| 10837 | 1998/1/16 0:00:00 | BERGS | Berguvsvägen 8 |
| 10838 | 1998/1/19 0:00:00 | LINOD | Ave. 5 de Mayo Porlamar |
| 10839 | 1998/1/19 0:00:00 | TRADH | Av. Inês de Castro, 414 |
共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);
}
}
