View:
@model MyPagedList
@foreach (var itm in Model.PagedItems)
{
@itm}
@Html.Pager(Model,new PagerOptions{PageIndexParameterName = "id",PagerItemTemplate = "{0} "})
Model:
public class MyPagedList :IPagedList
{
public MyPagedList(IEnumerable currentPageItems,int pageIndex, int pageSize, int totalItemCount)
{
CurrentPageIndex = pageIndex;
PageSize = pageSize;
TotalItemCount = totalItemCount;
PagedItems = currentPageItems.ToList();
}
public MyPagedList(IEnumerable allItems, int pageIndex, int pageSize)
{
CurrentPageIndex = pageIndex;
PageSize = pageSize;
var items = allItems as IList ?? allItems.ToList();
TotalItemCount = items.Count();
int startIndex = (pageIndex - 1)*pageSize;
PagedItems = items.Skip(startIndex).Take(pageSize).ToList();
}
public List PagedItems { get; set; }
public int CurrentPageIndex { get; set; }
public int PageSize { get; set; }
public int TotalItemCount { get; set; }
public IEnumerator GetEnumerator()
{
return PagedItems.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
Controller:
public ActionResult IPagedList(int id=1)
{
MyPagedList list=new MyPagedList(Enumerable.Range(1,88),id,5);
return View(list);
}