分页条中显示数字页码的计算方法

摘要:在做web分页的时候,分页条中数字显示个数的计算方法。没有用现成的分页组建来做分页条。自己写了段简单的计算分页的代码。 2014-8-8 15:56:46 fix one bug. detailDesc: 使用 calcPage(4, 5, 4);将会导致分页异常。

页码多的时候,当前页始终保持是分页条中显示的最中间那页。

public static void main(String[] args) {

for (int i = 1; i <= 10; i++) {

for (int j = 1; j <= i; j++) {

calcPage(j, i, 2);

System.out.println();

}

System.out.println("***********************"+i);

}

}

/**

* 计算显示当前分页的起始页

* @param pageNum 当前页码

* @param pageCount 总页数

* @param sideNum 分页系数  分页条中显示几个数字页码。

* 显示数字页码个数 = 2 * sideNum + 1

*/

public static void calcPage(int pageNum,int pageCount,int sideNum){

int startNum = 0;

int endNum = 0;

if(pageCount<=sideNum){

endNum = pageCount;

}else{

if((sideNum+pageNum)>=pageCount){

endNum = pageCount;

}else{

endNum = sideNum+pageNum;

if((sideNum+pageNum)<=(2*sideNum+1)){

if((2*sideNum+1)>=pageCount){

endNum = pageCount;

}else{

endNum = 2*sideNum+1;

}

}else{

endNum = sideNum + pageNum;

}

}

}

if(pageNum<=sideNum){

startNum = 1;

}else{

if((pageNum+sideNum)>=pageCount){

if((2*sideNum+1)>=pageCount){

if((pageCount - 2*sideNum)>=1){

startNum = pageCount - 2*sideNum;

}else{

startNum = 1;

}

}else{

startNum = pageCount - 2*sideNum;

}

}else{

if((pageNum-sideNum)>=1){

startNum = pageNum - sideNum;

}else{

startNum = 1;

}

}

}

loopOut(startNum, endNum, pageNum);

}

/**

* 输出计算出来的当前分页详情

* @param startNum

* @param endNum

* @param pageNum

*/

public static void loopOut(int startNum,int endNum,int pageNum){

for (int i = startNum; i <= endNum; i++) {

if(i==pageNum){

//输出@符号,代表当前页

System.out.print(i+"@ | ");

}else{

System.out.print(i+" | ");

}

}

}

时间: 2024-12-14 19:02:36

分页条中显示数字页码的计算方法的相关文章

097在进度条中显示进度百分比

效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 #import "KMProgressViewWithLabel.h" 3 4 @interface ViewController : UIViewController 5 @property (strong, nonatomic) KMProgressViewWithLabel *progressViewCustom; 6 7 @end ViewController.m

HTML5动画(二):Canvas 实现圆形进度条并显示数字百分比

实现效果 1.首先创建html代码 <canvas id="canvas" width="500" height="500" style="background:#000;"></canvas> 2.创建canvas环境 var canvas = document.getElementById('canvas'), //获取canvas元素 context = canvas.getContext('2d

JS分页条

做分页条遇到的问题主要是中间几个页码如何计算. 目前做的这个分页功能:前进,后退,首,末,中间显示指定个数页码按钮,可选择转到指定页面,可选择几种尺寸和颜色 大体思路: 定义分页类 // getdataE:请求数据方法, pageindex:当前页码,pagesize:分页数大小 ,listcount: 总条数// ,pagelistcount:取回数据条数,[PageBtnCount]:分页条上显示页码个数(1 - 10)// ,[uisize]: 尺寸大小 , [uicolor]:颜色 fu

ASP.NET中DataList数字分页代码

ASP.NET中DataList数字分页代码 转 荐 好长时间没发东西了, 之前一段时间一直在做别的东西, 最近java实验室要开搞系统哈哈, 重新学习.net 这个分页困扰了我这个菜鸟好久阿, 搞了好久终于找到这段代码, 还是数字分页, 试了成功了~还不会分页的朋友看到这个就偷笑吧~~ 代码转自http://hi.baidu.com/honfei css样式取自吴旗娃aspnetpager 效果: 共1页       首页 上一页  1 2 3 4 5 6 7 8 9 10 ....下一页 末

C#.NET中使用BackgroundWorker在模态对话框中显示进度条

这里是一个示例,其中展示了如何使用Backgroundworker对象在模态对话框中显示后台操作的实时进度条. 首先是主窗体代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;

C#操作数据库,将其查查出来的记录条数显示在winform窗体中的方法之一

1 //1.数据库链接的基本操作(略) 2 //2.创建对象函数(关键部分) 3 sqlConn.Open(); 4 //初始化定义记录条数 5 int n = 0; 6 object obj = sqlComm.ExecuteScalar();//创建对象(ExecuteScalar()函数是获取所查的记录中的第一行第一列数据.) 7 int.TryParse(obj.ToString(), out n);//获取所查询的记录条数 8 string a = n.ToString();//将记录

Bootstrap 组件中的分页条

先查看效果: 实现: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=de

ExtJS自制表格Grid分页条

试过Grid自带的load和分页功能,没有成功,干脆就自己写了...... 主要是查询条件比较复杂...... 希望哪位大神能有更好的意见. 1 Ext.define('MyApp.ux.Pagination', { 2 extend: 'Ext.Toolbar', 3 // 调用时用此名称 4 alias: 'Pagination', 5 autoDestroy : true, 6 items : ['->',{ 7 // 用于记录查询条件 8 xtype : 'displayfield',

java从字符串中提取数字

1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只需要直接进入该页面然后直接找到第一条或者最后一条数据即可. 2.例子: 界面: javs代码: /** * java从字符串中提取数字 * str:传递过来的字符串 */ public static List<String> getNUm(String str){ str.trim(); //St