在.net中,除了人手动写分页类之外,微软还提供了官方的分页,分页工具类包括PagedList和PagerExtension,先来看看PagedList类里面是怎么写的:
PagedList
using System;
using System.Collections.Generic;
using System.Linq;namespace System.Web.Mvc
{public class PagedList<T> : List<T>{/// <summary>/// 页索引/// </summary>public int PageIndex { get; private set; }/// <summary>/// 页大小/// </summary>public int PageSize { get; private set; }/// <summary>/// 总数据条数/// </summary>public int TotalCount { get; private set; }/// <summary>/// 总页数/// </summary>public int TotalPages { get; private set; }/// <summary>/// 数据信息/// </summary>// public List<T> Source { get; private set; }public PagedList(List<T> source, int pageIndex, int pageSize, int totalCount){PageIndex = pageIndex;PageSize = pageSize;TotalCount = totalCount;TotalPages = (int)Math.Ceiling(TotalCount / (double)PageSize);this.AddRange( source.Take(source.Count));}public PagedList(){}/// <summary>/// 是否包含上一页/// </summary>public bool HasPreviousPage{get{return (PageIndex > 1);}}public bool HasNextPage{get{return (PageIndex < TotalPages);}}}
}