62,041
社区成员
发帖
与我相关
我的任务
分享
public static PageRange GetPageRange(int currentPageIndex, int pageCount, int displayCount)
{
PageRange range;
if (pageCount <= displayCount)
{
range = new PageRange(1, pageCount);
}
else
{
int midPageIndex = (int)(displayCount / 2);
if (currentPageIndex <= (midPageIndex + 1))
{
range = new PageRange(1, displayCount);
}
else if (currentPageIndex > (pageCount - midPageIndex))
{
range = new PageRange(pageCount - displayCount + 1, pageCount);
}
else
{
range = new PageRange(currentPageIndex - midPageIndex, currentPageIndex + displayCount - midPageIndex - 1);
}
}
return range;
}
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
int countPage = 100;
int dispPage = 9;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
for (int i = 1; i <= countPage; i++)
{
Response.Write(GetLinksHTML(i, countPage, dispPage) + "<br/>");
}
}
}
private string GetLinksHTML(int currentPage, int countPage, int dispPage)
{
string resultLinks = string.Empty;
PageRange range = Pager.GetPageRange(currentPage, countPage, dispPage);
if (range.PageFrom == 2)
{
resultLinks += "<a href='#'>" + 1 + "</a> ";
}
else if (range.PageFrom > 2)
{
resultLinks += "<a href='#'>" + 1 + "</a>...";
}
for (int i = range.PageFrom; i <= range.PageTo; i++)
{
if (i == currentPage)
{
resultLinks += currentPage + " ";
continue;
}
resultLinks += "<a href='#'>" + i + "</a> ";
}
if(range.PageTo == countPage - 1)
{
resultLinks += "<a href='#'>" + countPage + "</a>";
}
else if (range.PageTo < countPage)
{
resultLinks += "..." + "<a href='#'>" + countPage + "</a>";
}
return resultLinks;
}
}
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
int countPage = 100;
int dispPage = 9;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
for (int i = 1; i <= countPage; i++)
{
Response.Write(GetLinksHTML(i, countPage, dispPage) + "<br/>");
}
}
}
private string GetLinksHTML(int currentPage, int countPage, int dispPage)
{
string resultLinks = string.Empty;
PageRange range = Pager.GetPageRange(currentPage, countPage, dispPage);
if (range.PageFrom > 2)
{
resultLinks += "<a href='#'>" + 1 + "</a>...";
}
for (int i = range.PageFrom; i <= range.PageTo; i++)
{
if (i == currentPage)
{
resultLinks += currentPage + " ";
continue;
}
resultLinks += "<a href='#'>" + i + "</a> ";
}
if (range.PageTo < countPage)
{
resultLinks += "..." + "<a href='#'>" + countPage + "</a>";
}
return resultLinks;
}
}
public struct PageRange
{
public int PageFrom { get; set; }
public int PageTo { get; set; }
public PageRange(int from, int to) : this()
{
PageFrom = from;
PageTo = to;
}
}
public static PageRange GetPageRange(int currentPageIndex, int pageCount, int displayCount)
{
PageRange range;
if (pageCount <= displayCount)
{
range = new PageRange(1, pageCount);
}
else
{
int midPageIndex = (int)(displayCount / 2);
if (currentPageIndex <= (midPageIndex + 1))
{
range = new PageRange(1, displayCount);
}
else if (currentPageIndex > (pageCount - midPageIndex))
{
range = new PageRange(pageCount - displayCount + 1, pageCount);
}
else
{
range = new PageRange(currentPageIndex - midPageIndex, currentPageIndex + displayCount - midPageIndex - 1);
}
}
return range;
}