/// <summary> /// 计算按当前页码及最大生成页条数在总页数时生成的两个下标值 /// 例如pageIndex=4,当前数据一共有7页(pageLength) /// 而需要生成5页(pageCount),那么最终会生成两个值2和6 /// 前端在使用时只用以2开始以6结尾生成对应的页码标签即可 /// </summary> /// <param>当前页码</param> /// <param>所有页码数量</param> /// <param>要生成的页码数量</param> /// <returns>第一页的页码,最后一页的页码</returns> private Tuple<int, int> GetPages(int pageIndex, int pageLength, int pageCount = 5) { if (pageIndex > pageLength) { pageIndex = pageLength; } if (pageIndex < 1) { pageIndex = 1; } if (pageLength <= pageCount) { return new Tuple<int, int>(1, pageLength); } else { int left = 1; int count = pageCount; if (pageIndex - 2 <= 1) { return new Tuple<int, int>(left, count); } else { //left count均要计算 if (pageIndex + 2 <= pageLength) { //左右都充足 left = pageIndex - 2; count = pageIndex + 2; return new Tuple<int, int>(left, count); } else { //左充右缺 count = pageLength; left = pageLength - 4; return new Tuple<int, int>(left, count); } } } }
分页方法,始终只生成指定数量的页码
内容版权声明:除非注明,否则皆为本站原创文章。