|
int min;//要显示的页面导航数最小值
int max;//要显示的页面导航数最大值
设计时,需要考虑三种情况:
1:如果当前页除以ShowPages余数为0,也就是恰好可以整除的话,页面导航数字最小值和最大值分别是:
min最小值 = 当前页 + 1
max最大值 = 当前页 + 页面导航数字个数(ShowPages)
对应代码:
if(this.CurrentPage % this.ShowPages == 0) //如果恰好整除
{
min = this.CurrentPage + 1;
max = this.CurrentPage + this.ShowPages ;
}
2:如果当前页是导航数字最小值时,应该切换到前一组导航数字。此时,导航数字的最小值和最大值分别是:
min最小值 = (((int)当前页 / 页面导航数字个数ShowPages ) - 1) *页面导航数字个数ShowPages +1;
max最大值 = 当前页 –1
对应代码如下:
else if(this.CurrentPage % this.ShowPages == 1 && this.CurrentPage > this.ShowPages )
{
min = (((int)this.CurrentPage / this.ShowPages ) - 1) * this.ShowPages +1;
max = this.CurrentPage - 1;
}
3:如果当前页是导航数字最大值时,应该切换到后一组导航数字。此时,导航数字的最小值和最大值分别是:
min最小值 = ((int)当前页 / 页面导航数字个数ShowPages) * 页面导航数字个数ShowPages + 1
max最大值 = (((int)当前页 / 页面导航数字个数ShowPages) +1) * 页面导航数字个数ShowPages
对应代码如下:
else
{
min = ((int)this.CurrentPage / this.ShowPages) * this.ShowPages + 1;
max = (((int)this.CurrentPage / this.ShowPages) +1) * this.ShowPages;
}
即然导航数字列表的最小值和最大值都计算出来了,所以我们通个做一个循环操作就可以生成该导航,当前页用斜体和红色字体突出显示:
for(int i = min ; i <= max ; i++)
{
if(i <= this.Pages)//只有不大于最大页才显示
{
if(this.CurrentPage == i)//如果是当前页,用斜体和红色显示
{
numberStr = numberStr + "<a href=" + AbsUrl + "?currentPage=" + i.ToString() + ">" + "<I style=''''color:red''''>" + i.ToString() + "</I>" +"</a>" + "\n";
}
else
{
numberStr = numberStr + "<a href=" + AbsUrl + "?currentPage=" + i.ToString() + ">" + i.ToString() +"</a>" + "\n";
}
}
}
大家应该看出来了,在导航列表的最前面和最后面一共还有四个图标,这几个图标并不是图片,而是7348四个数字的Wedding字体。这四个图标的代码如下:
//第一页,上一页,下一页,最后一页
string First,Previous,Next,Last;
First = AbsUrl + "?currentPage=1";
/////////
if(this.CurrentPage == 1)
Previous = AbsUrl + "?currentPage=1";
else
Previous = AbsUrl + "?currentPage=" + (this.CurrentPage - 1).ToString();
/////////
if(this.CurrentPage == this.Pages)
Next = AbsUrl + "?currentPage=" + this.Pages;
else
Next = AbsUrl + "?currentPage=" + (this.CurrentPage + 1).ToString();
/////////
Last = AbsUrl + "?currentPage=" + this.Pages;
上一页 [1] [2] [3] [4] [5] 下一页 [C语言系列]NET 中C#的switch语句的语法 [系统软件]托拽Explore中的文件到VB.net的窗口 [系统软件]Boost库在XP+Visual C++.net中的安装 [常用软件]新配色面板:Paint.Net3.0RC1官方下载 [常用软件]用内建的“Net Meeting”聊天 [VB.NET程序]Henry的VB.NET之旅(三)—共享成员 [VB.NET程序]Henry的VB.NET之旅(二)—构造与析构 [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体 [VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET) [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
|