The*_*Man 2 c# pagination page-numbering
我想模仿这种分页的工作原理:
请注意当前页面如何始终在两侧显示两个页面?当您考虑到您可能在第4页并且1和3之间没有间隙或者如果您在第1页上它将向右侧显示两个以上的数字时,这似乎是很多条件代码.
有人可以让我开始正确的开始吗?
以下是控制台程序的示例输出,其中包含您正在寻找的逻辑:
Program.exe 1
1 2 3 ... 100
Program.exe 2
1 2 3 4 ... 100
Program.exe 5
1 ... 3 4 5 6 7 ... 100
using System;
class Program
{
static void Main(string[] args)
{
// usage program.exe page#
// page# between 1 and 100
int minPage = 1;
int maxPage = 100;
int currentPage = int.Parse(args[0]);
// output nice pagination
// always have a group of 5
int minRange = Math.Max(minPage, currentPage-2);
int maxRange = Math.Min(maxPage, currentPage+2);
if (minRange != minPage)
{
Console.Write(minPage);
Console.Write("...");
}
for (int i = minRange; i <= maxRange; i++)
{
Console.Write(i);
if (i != maxRange) Console.Write(" ");
}
if (maxRange != maxPage)
{
Console.Write("...");
Console.Write(maxPage);
}
}
}
Run Code Online (Sandbox Code Playgroud)