`
dengyin2000
  • 浏览: 1223845 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

分页程序中得到page link的算法。

阅读更多
话不多说。

	public ArrayList<Integer> page(int total, int current) {
		int adjacents = 3;

		ArrayList<Integer> result = new ArrayList<Integer>();
		
        if (total < (5 + (adjacents * 2))) // not enough links to make it worth breaking up
        {
            WriteNumberedLinks(1, total, result);
        }
        else
        {
            if ((total - (adjacents * 2) > current) && // in the middle
                (current > (adjacents * 2)))
            {
                WriteNumberedLinks(1, 1, result);
                WriteElipsis(result);
                WriteNumberedLinks(current - adjacents - 1, current + adjacents, result);
                WriteElipsis(result);
                WriteNumberedLinks(total, total, result);
            }
            else if (current < (total / 2))
            {
                WriteNumberedLinks(1, 3 + (adjacents * 2), result);
                WriteElipsis(result);
                WriteNumberedLinks(total, total, result);
            }
            else // at the end
            {
                WriteNumberedLinks(1, 1, result);
                WriteElipsis(result);
                WriteNumberedLinks(total - (2 + (adjacents * 2)), total, result);
            }
        }
        return result;
	}

	/**
	 * @param result 
	 * 
	 */
	private void WriteElipsis(ArrayList<Integer> result) {
		result.add(-1);
	}

	/**
	 * @param i
	 * @param lastIndex
	 * @param result 
	 */
	private void WriteNumberedLinks(int i, int lastIndex, ArrayList<Integer> result) {
		for (int d=i; d <= lastIndex; d++) {
			result.add(d);
		}
	}  


其中-1是用来打点的。效果图如下。










分享到:
评论
2 楼 gundumw100 2009-09-19  
特别是JSP页面怎么使用?
1 楼 gundumw100 2009-09-18  
兄弟,能否给个更详细点的用法?

相关推荐

    php 3行代码的分页算法(求起始页和结束页)

    一个好的分页算法, 应该具有下面的优点: 当前页码应该尽量在正中间. 如果”首页”和”尾页”不可用(当前处于第一页或最后一页), 不要隐藏这两组文字, 以免链接按钮位置变动. 算法简单. 下面的算法具有前面1和3两个...

    PHP+AJAX无刷新分页

    后端代码主要包括与数据库的交互逻辑和分页算法的实现。下面是一个示例性的PHP代码: ```php // 数据库连接配置 $host = "localhost"; $user = "root"; $pwd = "root"; $dbname = "test"; // 创建数据库连接 $...

    Struts2+Json+ExtJS分页

    ### Struts2+Json+ExtJS分页技术详解 #### 一、技术背景与概述 在Web开发领域,实现高效的数据展示与交互是至关重要的...在实际项目中,还可以进一步优化代码结构和性能,例如采用更高效的查询算法、增加缓存机制等。

    bootstrap paginator分页插件的两种使用方式实例详解

    Bootstrap Paginator 是一个基于流行的前端框架 Bootstrap 的 JavaScript 分页插件,它使得在网页上实现美观且功能完善的分页效果变得简单。本篇文章将详细介绍如何使用 Bootstrap Paginator 实现两种不同的分页方式...

    RePage: A Novel Over-Air Reprogramming Approach Based on Paging Mechanism Applied in Fog Computing

    通过采用功能分页机制、改进的缓存替换算法以及优化的函数调用管理方式,RePage有效地降低了程序重建过程中的能耗。这一研究成果对于提升雾计算系统整体能效具有重要意义,并为未来的雾计算应用提供了有力的技术支持...

    计算机四级中常考的英语单词(4).docx

    3. **Page replacement algorithm** - 页替换算法:用于决定何时将内存中的页面替换到磁盘上的页面文件,以腾出空间给其他需要的页面。 4. **Paged segments** - 段页式管理:一种内存管理策略,结合了分段和分页,...

    smarttable带排序和过滤功能的jQuery表格插件

    插件内部实现了多种排序算法,能够处理各种数据类型,如数字、日期和字符串等。 2. **过滤功能**:SmartTable提供了字段过滤功能,允许用户输入关键词筛选符合特定条件的行。这增强了用户体验,让用户能够快速定位...

    CSS样式所有属性.pdf

    - `:active`, `:focus`, `:hover`, `:link`, `:visited`:根据元素的状态(如被点击、获得焦点、悬停、未访问、已访问)应用样式。 这些属性构成了CSS样式的核心,使得开发者能够创建出丰富多样的网页布局和交互...

    AJAX自动完成示例

    - **分页或懒加载**:如果数据集很大,可考虑分页或只在需要时加载更多数据。 综上所述,ASP.NET AJAX 自动完成控件是一种强大且灵活的工具,能够轻松地集成到现有的 ASP.NET 应用中,提供高效的用户输入体验。通过...

    css-cheat-sheet-v2.pdf

    - **`page-break-before`**:控制分页符是否出现在元素之前。 - **`page-break-after`**:控制分页符是否出现在元素之后。 #### 用户界面 - **`cursor`**:设置光标样式。 - **`outline`**:设置元素轮廓。 - **`...

Global site tag (gtag.js) - Google Analytics