Fork me on GitHub

MvcPager 分页示例 — 多个MvcPager

本示例演示在同一个页面上使用多个HtmlPager为不同的数据分页。

注意:一个页面上有多个MvcPager时,必须确保每个MvcPager的PagerOptions.PageIndexParameterName属性值不同,否则一个MvcPager的分页事件,会引发所有PagerOptions.PageIndexParameterName属性值相同的MvcPager同时分页。

序号 文章标题 作者 文章来源
21 吴起:现代农业蓬勃发展 Webdiyer 吴起热线
22 吴起打造“绿色革命”圣地 Webdiyer 吴起热线
23 吴华路二级公路施工期间实行交通管制的通告 Webdiyer 吴起热线
24 吴起县:加快发展旅游业 打造经济发展新引擎 杨涛 吴起政府网
25 吴起将举办四国男篮赛 国奥男篮“牵手”残疾儿童 Webdiyer 吴起热线
首页 上页 1 2 3 4 5 6 7 8 9 10 ... 下页 尾页 

序号 文章标题 作者 文章来源
41 吴起婚嫁习俗 Webdiyer 吴起热线
42 陕西省吴起县地税局税费收入突破17亿元大关 杨涛 吴起政府网
43 2012年吴起县人民政府工作报告 Webdiyer 吴起政府网
44 吴起:昔日红军长征落脚地 如今退耕还林第一县 杨涛 吴起热线
45 吴起县2013年春节文化系列活动安排 杨涛 吴起政府网
首页 上页 ... 2 3 4 5 6 7 8 9 10 11 下页 尾页 

View:

        
@model CompositeArticles
@{Html.RenderPartial("_ArticleTable", Model.ArticleList1);}
@Html.Pager(Model.ArticleList1).Options(o => o.SetPagerItemTemplate("{0} "))
<hr />
@{Html.RenderPartial("_ArticleTable",Model.ArticleList2);}
@Html.Pager(Model.ArticleList2, new PagerOptions { PageIndexParameterName = "id", RouteName = "MvcPager_Default" , 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; }
    }

ViewModel:

    public class CompositeArticles
    {
        public PagedList<article> ArticleList1 { get; set; }
        public PagedList<article> ArticleList2 { get; set; }
        public PagedList<article> ArticleList3 { get; set; } 
    }

Controller:

        public ActionResult MultipleMvcPagers(int id = 1,int pageIndex=1)
        {
            using (var db = new DataContext())
            {
                var pageSize = 5;
                var model=new CompositeArticles();
                model.ArticleList1 = db.Articles.OrderByDescending(a => a.PubDate).ToPagedList(pageIndex, pageSize);
                model.ArticleList2 = db.Articles.OrderByDescending(a => a.PubDate).ToPagedList(id, pageSize);
                return View(model);
            }
        }