带分页码的分页算法
int start = 1, end = 10;
//如果总页数小于结束页码
if (PageCount < end)
{
//则结束页码为总页数
end = PageCount;
}
else
{
//当前页大于5后开始重新计算起始页,否则起始页为1
start = PageIndex > 5 ? PageIndex - 5 : start;
//起始页码加9减去总页数,用于查看是否超过了总页数
int result = start + 9 - PageCount;
//如果超过总页数肯定大于0
if (result > 0)
{
end = PageCount;//设置结束页码为总页数
start = start - result;//超过最后页,补差
}
else
{
//不超过总页数,起始页加9计算出结束页码
end = start + 9;
}
}
int size = PageSize;
//总页数小于分页码数
if (PageCount < PageSize)
{
//设置分页码个数为总页数
size = PageCount;
}
int[] rows = new int[size];
int index = 0;
for (int i = start; i <= end;i++ )
{
rows[index] = i;
index++;
}
//如果总页数小于结束页码
if (PageCount < end)
{
//则结束页码为总页数
end = PageCount;
}
else
{
//当前页大于5后开始重新计算起始页,否则起始页为1
start = PageIndex > 5 ? PageIndex - 5 : start;
//起始页码加9减去总页数,用于查看是否超过了总页数
int result = start + 9 - PageCount;
//如果超过总页数肯定大于0
if (result > 0)
{
end = PageCount;//设置结束页码为总页数
start = start - result;//超过最后页,补差
}
else
{
//不超过总页数,起始页加9计算出结束页码
end = start + 9;
}
}
int size = PageSize;
//总页数小于分页码数
if (PageCount < PageSize)
{
//设置分页码个数为总页数
size = PageCount;
}
int[] rows = new int[size];
int index = 0;
for (int i = start; i <= end;i++ )
{
rows[index] = i;
index++;
}