在做JAVA项目的时候,写了一个分页控件,想着C#的朋友有可能需要,就用C#写了一个,数据方面分页的方法网上很多,就不重复了,话不多说,下面是UI端代码:
/// <summary>
/// 创建自定义分页控件,返回HTML代码
/// </summary>
/// <returns></returns>
private string CreatePager()
{
StringBuilder sb = new StringBuilder();
//当前页
int currPage = 1;
//获取URL页码参数
if (Request.QueryString["page"] != null)
{
currPage = int.Parse(Request.QueryString["page"]);
}
//总页数
int pageCount = 18;
//显示页码数
int pageNum = 5;
/以上参数是可以动态调整的,下面是算法/
//上一页
int prevPage = 1;
//下一页
int nextPage = prevPage + pageNum;
sb.Append("<ul class=\"pagination\">");
//首页
sb.Append("<li class=\"paginate_button previous\"><a href=\"Name.aspx?active=11,12&page=1\">首页</a></li>");
int count = 0;
int currCount = 0;
for (int i = 1; i <= pageCount; i++)
{
if (i == currPage)
{
currCount = count;
}
if (i % pageNum == 0)
{
if (i < pageCount)
{
count++;
}
}
}
if (currPage > pageNum)
{
prevPage = pageNum * currCount;
sb.Append("<li class=\"paginate_button\"><a href=\"Name.aspx?active=11,12&page=" + prevPage.ToString() + "\">...</a></li>");
}
int start = pageNum * currCount + 1;
int end = pageNum * currCount + pageNum;
for (int i = start; i <= end; i++)
{
if (i <= pageCount)
{
if (i == currPage)
{
sb.Append("<li class=\"paginate_button active\"><a href=\"Name.aspx?active=11,12&page=" + i.ToString() + "\">" + i.ToString() + "</a></li>");
}
else
{
sb.Append("<li class=\"paginate_button\"><a href=\"Name.aspx?active=11,12&page=" + i.ToString() + "\">" + i.ToString() + "</a></li>");
}
}
}
if (currCount < count)
{
nextPage = pageNum * currCount + nextPage;
sb.Append("<li class=\"paginate_button\"><a href=\"Name.aspx?active=11,12&page=" + nextPage.ToString() + "\">...</a></li>");
}
//尾页
sb.Append("<li class=\"paginate_button next\"><a href=\"Name.aspx?active=11,12&page=" + pageCount.ToString() + "\">尾页</a></li>");
sb.Append("</ul>");
return sb.ToString();
}