mvc.net分页查询案例——PagedList

在.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);
            }
        }
    }
}


原文地址:https://www.cnblogs.com/a1111/p/12816216.html