简单分页字符串方法
/// <summary>
/// 简单分页字符串方法
/// </summary>
/// <param name="url">要分页的地址</param>
/// <param name="pageSize">每页显示多少条数据</param>
/// <param name="pageIndex">当前页索引</param>
/// <param name="rows">共多少条数据</param>
/// <returns></returns>
public static string GetPageBar(string url ,int pageSize,int pageIndex,int rows)
{
StringBuilder sb = new StringBuilder("");
int pageCount = (int)Math.Ceiling(1.0 * rows / pageSize);
sb.AppendFormat("总共{0}页 当前第{1}页/{2}页",pageCount,pageIndex,pageCount);
sb.AppendFormat(" ");
sb.AppendLine("<a href="+url+"?pageIndex=1>首页</a>");
sb.AppendLine("<a href="+url+"?pageIndex="+((pageIndex-1)<=0?1:(pageIndex-1))+">上一页</a>");
sb.AppendLine("<a href=" + url + "?pageIndex="+((pageIndex+1)>=pageCount?pageCount:(pageIndex+1))+">下一页</a>");
sb.AppendLine("<a href=" + url + "?pageIndex="+pageCount+">末页</a>");
return sb.ToString();
}
前端调用
Bar = PageHelper.GetPageBar("ListNewsInfo.aspx", pageSize, pageIndex, rows);
显示效果如下
总共3页 当前第1页/3页 首页 上一页 下一页 末页
带页码的分页方法
/// <summary>
/// 带页码的分页字符串方法
/// </summary>
/// <param name="curPageIndex">当前页索引</param>
/// <param name="pageSize">每页显示多少条记录</param>
/// <param name="totalCount">总记录数</param>
/// <param name="url">分页地址</param>
/// <param name="maxPageNum">显示的页码的最大值</param>
/// <returns></returns>
public static string GetPageHtml(int curPageIndex, int pageSize, int totalCount, string url, int maxPageNum = 8)
{
curPageIndex = curPageIndex <= 0 ? 1 : curPageIndex;
StringBuilder pageHtml = new StringBuilder();
pageHtml.Append(curPageIndex == 1 ? "<a href=\"javascript:void(0);\">首页</a>" : "<a href=\"" + string.Format(url, 1) + "\">首页</a>");
pageHtml.Append(curPageIndex > 1 ? "<a href=\"" + string.Format(url, curPageIndex - 1) + "\">上一页</a>" : "<a href=\"javascript:void(0);\">上一页</a>");
int pageCount = GetPageCount(pageSize, totalCount);//总页码
//获取显示区域第一个开始位置 如 1 9 17
int firstNum = curPageIndex % maxPageNum == 0 ? curPageIndex - (maxPageNum - 1) : curPageIndex - curPageIndex % maxPageNum + 1;
if (firstNum > maxPageNum)
{
pageHtml.Append("<a href=\"" + string.Format(url, firstNum - 1) + "\">...</a>");
}
for (int i = firstNum; i < firstNum + maxPageNum; i++)
{
if (i > pageCount) break;
string css = string.Empty;
if (i == curPageIndex)
{
css = "class=\"currentpage\"";
}
pageHtml.Append("<a " + css + " href=\"" + string.Format(url, i) + "\">" + i + "</a>");
}
if (pageCount >= firstNum + maxPageNum)
{
pageHtml.Append("<a href=\"" + string.Format(url, firstNum + maxPageNum) + "\">...</a>");
}
pageHtml.Append(curPageIndex < pageCount ? "<a href=\"" + string.Format(url, curPageIndex + 1) + "\">下一页</a>" : "<a href=\"javascript:void(0);\">下一页</a>");
pageHtml.Append("<a href=\"" + string.Format(url, pageCount) + "\">尾页</a>");
pageHtml.Append(string.Format("<a href=\"javascript:void(0);\">共{0}页,{1}条</a>", pageCount, totalCount));
return pageHtml.ToString();
}
/// <summary>
/// 获取总页数
/// </summary>
/// <param name="pageSize">每页显示多少行记录</param>
/// <param name="totalCount">总记录数</param>
/// <returns></returns>
public static int GetPageCount(int pageSize, int totalCount )
{
int pageNumbers = 0;
if (totalCount % pageSize != 0)
{
pageNumbers = totalCount / pageSize + 1;
}
else
{
pageNumbers = totalCount / pageSize;
}
pageNumbers = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(totalCount) / Convert.ToDouble(pageSize)));
return pageNumbers;
}
前端调用
Bar = PageHelper.GetPageHtml(pageIndex, pageSize, rows, "ListNewsInfo.aspx?pageIndex={0}");
显示效果如下
首页 上一页 1 2 3 4 5 6 7 8 … 下一页 尾页 共 12 页 ,54条