`
dengyin2000
  • 浏览: 1208459 次
  • 性别: 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  
兄弟,能否给个更详细点的用法?

相关推荐

Global site tag (gtag.js) - Google Analytics