Fork me on GitHub

MvcPager 分页示例 — 用路由参数控制PageSize

该示例演示如何通过Url参数来控制每页显示的记录数,请点击按钮查看效果,同时注意Url中的参数变化。

序号 文章标题 作者 文章来源
21 吴起:现代农业蓬勃发展 Webdiyer 吴起热线
22 吴起打造“绿色革命”圣地 Webdiyer 吴起热线
23 吴华路二级公路施工期间实行交通管制的通告 Webdiyer 吴起热线
24 吴起县:加快发展旅游业 打造经济发展新引擎 杨涛 吴起政府网
25 吴起将举办四国男篮赛 国奥男篮“牵手”残疾儿童 Webdiyer 吴起热线
26 吴起被列为全国首批、全省唯一的农村改革试验区 杨涛 吴起热线
27 陕西省延安市吴起县 Webdiyer 吴起热线
28 吴起打造“绿色革命”圣地 杨涛 吴起热线
29 四国篮球争霸赛将在吴起举行 Webdiyer 吴起政府网
30 土地广阔、资源丰富、景区众多的延安吴起县 杨涛 吴起热线
首页 上页 1 2 3 4 5 6 下页 尾页 

View:

@model PagedList<article>
<div class="well well-sm"><a href="@Url.RouteUrl("MvcPager_PageSize", new { PageSize = 5 })" class="btn btn-primary">每页显示五条数据</a>&nbsp;<a href="@Url.RouteUrl(" MvcPager_PageSize", new { pagesize=10 })" class="btn btn-primary">每页显示十条数据</a>&nbsp;<a href="@Url.RouteUrl(" MvcPager_PageSize", new { pagesize=15 })" class="btn btn-primary">每页显示十五条数据</a></div>
 
@Html.Partial("_ArticleTable", Model)
@Html.Pager(Model, new PagerOptions {RouteName = "MvcPager_PageSize", PagerItemTemplate = "{0}&nbsp;"})

_ArticleTable.cshtml:

@model PagedList<Article>
<table class="table table-bordered table-striped">
    <tr>
        <th class="nowrap">序号</th>
        <th>
            @Html.DisplayNameFor(model => model.Title)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.PubDate)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Author)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Source)
        </th>
    </tr>
    @{ int i = 0;}
    @foreach (var item in Model)
    {
        <tr>
            <td>@(Model.StartItemIndex + i++)</td>
            <td>
                @Html.DisplayFor(modelItem => item.Title)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.PubDate)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Author)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Source)
            </td>
        </tr>
    }
</table>

Model:

    public class Article
    {
        [Display(Name="文章编号")]
        public int ID { get; set; }
        [Display(Name="文章标题")]
        [MaxLength(200)]
        public string Title { get; set; }
        [Display(Name = "文章内容")]
        public string Content { get; set; }
        [Display(Name = "发布日期")]
        public DateTime PubDate { get; set; }
        [Display(Name = "作者")]
        [MaxLength(20)]
        public string Author { get; set; }
        [Display(Name = "文章来源")]
        [MaxLength(20)]
        public string Source { get; set; }
    }

Controller:

        
        public ActionResult PageSize(int pagesize = 10, int pageindex = 1)
        {
            using (var db = new DataContext())
            {
                return View(db.Articles.OrderByDescending(a => a.PubDate).ToPagedList(pageindex, pagesize));
            }
        }