asp.Net自家製ページングバーコントロール
マイクロソフトのサーバーコントロールを使ったことがある人はみんな知っています~あのカードのAですね~
必要に応じて、ページ番号バーコントロールを自作したいと考えています.
行くぞ~
必要に応じて、ページ番号バーコントロールを自作したいと考えています.
行くぞ~
public static class PageShow
{
/// <summary>
///
/// </summary>
/// <param name="requestHref"> </param>
/// <param name="totalCount"> </param>
/// <param name="currentPage"> </param>
/// <param name="pageSize"> </param>
/// <returns></returns>
public static string Show(string requestHref, int totalCount, int currentPage, int pageSize)
{
// pageSize totalPages
pageSize = pageSize == 0 ? 6 : pageSize;// 6
var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);//Math.Ceiling(totalCount / (pageSize / 1.0));// Ceiling , , , , : 96 , 6 , 16
var outPut = new StringBuilder();//
outPut.AppendFormat("<div class='pagination'>");//
// ,
if (totalPages > 1)
{
//
if (currentPage != 1)
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex=1&&pageSize={1}'> </a>"
, requestHref, pageSize);
}
//
if (currentPage > 1)
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'> </a>"
, requestHref, currentPage - 1, pageSize);
}
//
else
{
outPut.AppendFormat("<span class='disabled'> </span>");
}
outPut.Append(" ");
//
const int currint = 3;
// 6 , 3 3
for (int i = 0; i < 6; i++)
{
if (currentPage + i - currint >= 1 && currentPage + i - currint <= totalPages)
{
if (currint == i)
{
outPut.AppendFormat("<span class='disabled'>{0}</span>", currentPage + i - currint);
}
else
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>{3}</a>"
, requestHref, currentPage + i - currint, pageSize, currentPage + i - currint);
}
}
outPut.Append(" ");
}
if (currentPage < totalPages)
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'> </a>"
, requestHref, currentPage + 1, pageSize);
}
else
{
outPut.AppendFormat("<span class='disabled'> </span>");
}
outPut.Append(" ");
if (currentPage != totalPages)
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'> </a>"
, requestHref, totalPages, pageSize);
}
outPut.Append(" ");
}
outPut.AppendFormat(" {0} / {1} ", currentPage, totalPages);
outPut.AppendFormat("</div>");
return outPut.ToString();
}
}