视图中的多个PagedList:跟踪每个列表的当前页面

时间:2012-09-07 00:11:54

标签: asp.net-mvc-3 pagination pagedlist

我希望Troy Goode或做过同样事情的其他人可以在这里提供帮助。我是ASP.NET MVC的新手。

我有一个带有View的ASP.NET MVC3应用程序,其中我实现了两个PagedList控件,每个控件都显示不同的信息源。

PagedList控件是否提供了跟踪View上其他PagedLists的当前页码的方法?例如,如果我有:

PagedList1 (currently on page 1 of 10)
PagedList2 (currently on page 4 of 10)

我更改了PagedList1上的页面,View重新加载后,PagedList2将保留在第4页。

我考虑使用Session变量,但想知道是否有更优雅的解决方案。

谢谢。

1 个答案:

答案 0 :(得分:5)

我终于找到了办法。

<强>模型

public class ChequeSearch
{
    //Search criteria
    [DisplayName("Draft Number")]
    public string DraftNumber { get; set; }

    [DisplayName("Payee")]
    public string Payee { get; set; }

    //Search results
    public int? SearchResults1Page { get; set; }
    public int? SearchResults2Page { get; set; }
    public IPagedList<Cheque> SearchResults1 { get; set; }
    public IPagedList<Cheque> SearchResults2 { get; set; }
    public string SearchButton { get; set; }
}

查看

在搜索结果表1中:

@Html.PagedListPager(Model.SearchResults1,
        page => Url.Action("Search", new RouteValueDictionary() {
            { "SearchResults1Page", page },
            { "SearchResults2Page", Model.SearchResults2Page },
            { "DraftNumber", Model.DraftNumber },
            { "Payee", Model.Payee }
        }),
        PagedListRenderOptions.DefaultPlusFirstAndLast)

在搜索结果表2下:

@Html.PagedListPager(Model.SearchResults2,
        page => Url.Action("Search", new RouteValueDictionary() {
            { "SearchResults2Page", page },
            { "SearchResults1Page", Model.SearchResults1Page },
            { "DraftNumber", Model.DraftNumber },
            { "Payee", Model.Payee }
        }),
        PagedListRenderOptions.DefaultPlusFirstAndLast)

感谢您的光临。