MvcPager分页控件
MvcPager 分页示例—使用多个MvcPager为不同的数据分页
本示例演示如何在同一页面上使用多个MvcPager为不同的数据分页而互不干扰。
编号从小到大排序的订单:
使用名为“Default”的路由,分页参数名为id| 订单编号 | 订单日期 | 顾客编号 | 收货地址 |
|---|---|---|---|
| 10860 | 1998/1/29 0:00:00 | FRANR | 54, rue Royale |
| 10861 | 1998/1/30 0:00:00 | WHITC | 1029 - 12th Ave. S. |
| 10862 | 1998/1/30 0:00:00 | LEHMS | Magazinweg 7 |
| 10863 | 1998/2/2 0:00:00 | HILAA | Carrera 22 con Ave. Carlos Soublette #8-35 |
| 10864 | 1998/2/2 0:00:00 | AROUT | Brook Farm Stratford St. Mary |
| 10865 | 1998/2/2 0:00:00 | QUICK | Taucherstraße 10 |
| 10866 | 1998/2/3 0:00:00 | BERGS | Berguvsvägen 8 |
| 10867 | 1998/2/3 0:00:00 | LONEP | 89 Chiaroscuro Rd. |
| 10868 | 1998/2/4 0:00:00 | QUEEN | Alameda dos Canàrios, 891 |
| 10869 | 1998/2/4 0:00:00 | SEVES | 90 Wadhurst Rd. |
| 10870 | 1998/2/4 0:00:00 | WOLZA | ul. Filtrowa 68 |
| 10871 | 1998/2/5 0:00:00 | BONAP | 12, rue des Bouchers |
| 10872 | 1998/2/5 0:00:00 | GODOS | C/ Romero, 33 |
| 10873 | 1998/2/6 0:00:00 | WILMK | Keskuskatu 45 |
| 10874 | 1998/2/6 0:00:00 | GODOS | C/ Romero, 33 |
| 10875 | 1998/2/6 0:00:00 | BERGS | Berguvsvägen 8 |
| 10876 | 1998/2/9 0:00:00 | BONAP | 12, rue des Bouchers |
| 10877 | 1998/2/9 0:00:00 | RICAR | Av. Copacabana, 267 |
| 10878 | 1998/2/10 0:00:00 | QUICK | Taucherstraße 10 |
| 10879 | 1998/2/10 0:00:00 | WILMK | Keskuskatu 45 |
共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);
}
}
