要实现 List<T> 的数据转换,要小改一下 PageLinqExtensions.cs 文档,增加一个同名方法的重载,将 IQueryable<T> 改为 IList<T> 就可以啦!
增加如下方法重载:
public static PagedList<T> ToPagedList<T>
(
this IList<T> allItems,
int pageIndex,
int pageSize
)
{
if (pageIndex < 1)
pageIndex = 1;
var itemIndex = (pageIndex - 1) * pageSize;
var pageOfItems = allItems.Skip(itemIndex).Take(pageSize);
var totalItemCount = allItems.Count();
return new PagedList<T>(pageOfItems, pageIndex, pageSize, totalItemCount);
}
这样,在Controller中,通过代理从WCF中获取 List<T> 数据之后,就可以直接 ToPagedList<T>了