效果:
<div>
PagerList1
</div>
<div>
@{
var strPageIndex = Request.QueryString["page"];
var pageIndex = 0;
if (!string.IsNullOrEmpty(strPageIndex))
{
pageIndex = int.Parse(strPageIndex);
}
var pageTotal = 7;
}
@{
/*上一页*/
if (pageIndex == 1)
{
<a style="color:darkgray">上一页</a>
}
else
{
var prePagerIndex = pageIndex - 1;
<a href="/Pager/PagerList1?page=@prePagerIndex">上一页</a>
}
}
@{
var middlePageNum = 5;
if (pageTotal <= middlePageNum + 1)//123456
{
for (var i = 1; i <= pageTotal; i++)
{
if (pageIndex == i)
{
<a style="color:blue">@i</a>
}
else
{
<a href="/Pager/PagerList1?page=@i" style="color:blue">@i</a>
}
}
}
else
{
var bothPagerNum = middlePageNum / 2;
if (pageIndex < middlePageNum)//当前页在第一段
{
for (var i = 1; i <= middlePageNum; i++)
{
if (pageIndex == i)
{
<a style="color:blue">@i</a>
}
else
{
<a href="/Pager/PagerList1?page=@i" style="color:blue">@i</a>
}
}
<a>...</a>
<a href="/Pager/PagerList1?page=@pageTotal" style="color:blue">@pageTotal</a>
}
else
{
//当前页在第二段
<a href="/Pager/PagerList1?page=1" style="color:blue">1</a>
<a>...</a>
var middleStart = 0;
middleStart = pageIndex - bothPagerNum;
if (pageTotal <= pageIndex + bothPagerNum)
{
middleStart = pageTotal - middlePageNum + 1;
}
var middleEnd = middleStart + middlePageNum - 1;
if (middleEnd > pageTotal)//当前计算出的页码最后位置大于总页数时,取总页数
{
middleEnd = pageTotal;
}
for (var i = middleStart; i <= middleEnd; i++)
{
if (pageIndex == i)
{
<a style="color:blue">@i</a>
}
else
{
<a href="/Pager/PagerList1?page=@i" style="color:blue">@i</a>
}
}
if (pageTotal > middleEnd)//
{
<a>...</a>
<a href="/Pager/PagerList1?page=@pageTotal" style="color:blue">@pageTotal</a>
}
}
}
}
@{
/*下一页*/
if (pageIndex == pageTotal)
{
<a style="color:darkgray">下一页</a>
}
else
{
var nextPagerIndex = pageIndex + 1;
<a href="/Pager/PagerList1?page=@nextPagerIndex">下一页</a>
}
}
</div>