Fork me on GitHub

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

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

序号 文章标题 作者 文章来源
11 吴起县统筹引领县域经济向纵深发展迈进 Webdiyer 吴起政府网
12 吴起县巩固全国文明县城成果纪实 Webdiyer 吴起政府网
13 吴起县举办200余场陕北说书 Webdiyer 吴起政府网
14 电影《山丹丹花儿开》在陕西省吴起县开拍 Webdiyer 吴起政府网
15 吴起热线—吴起人自己的地方门户网站 Webdiyer 吴起热线
16 延安市吴起县境内古城投资三亿欲变陕北名镇 杨涛 吴起政府网
17 延安市居住证首发仪式在吴起举行 Webdiyer 吴起热线
18 黄土高原上的绿色丰碑——吴起县生态环境建设巡礼 杨涛 吴起热线
19 吴起的追梦之旅——吴起县争创“全国百强县”纪实 杨涛 吴起热线
20 延安铁边城入选第七批全国重点文保单位 杨涛 吴起热线
首页 上页 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));
            }
        }