话不多说。
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是用来打点的。效果图如下。
分享到:
相关推荐
一个好的分页算法, 应该具有下面的优点: 当前页码应该尽量在正中间. 如果”首页”和”尾页”不可用(当前处于第一页或最后一页), 不要隐藏这两组文字, 以免链接按钮位置变动. 算法简单. 下面的算法具有前面1和3两个...
后端代码主要包括与数据库的交互逻辑和分页算法的实现。下面是一个示例性的PHP代码: ```php // 数据库连接配置 $host = "localhost"; $user = "root"; $pwd = "root"; $dbname = "test"; // 创建数据库连接 $...
### Struts2+Json+ExtJS分页技术详解 #### 一、技术背景与概述 在Web开发领域,实现高效的数据展示与交互是至关重要的...在实际项目中,还可以进一步优化代码结构和性能,例如采用更高效的查询算法、增加缓存机制等。
Bootstrap Paginator 是一个基于流行的前端框架 Bootstrap 的 JavaScript 分页插件,它使得在网页上实现美观且功能完善的分页效果变得简单。本篇文章将详细介绍如何使用 Bootstrap Paginator 实现两种不同的分页方式...
通过采用功能分页机制、改进的缓存替换算法以及优化的函数调用管理方式,RePage有效地降低了程序重建过程中的能耗。这一研究成果对于提升雾计算系统整体能效具有重要意义,并为未来的雾计算应用提供了有力的技术支持...
3. **Page replacement algorithm** - 页替换算法:用于决定何时将内存中的页面替换到磁盘上的页面文件,以腾出空间给其他需要的页面。 4. **Paged segments** - 段页式管理:一种内存管理策略,结合了分段和分页,...
插件内部实现了多种排序算法,能够处理各种数据类型,如数字、日期和字符串等。 2. **过滤功能**:SmartTable提供了字段过滤功能,允许用户输入关键词筛选符合特定条件的行。这增强了用户体验,让用户能够快速定位...
- `:active`, `:focus`, `:hover`, `:link`, `:visited`:根据元素的状态(如被点击、获得焦点、悬停、未访问、已访问)应用样式。 这些属性构成了CSS样式的核心,使得开发者能够创建出丰富多样的网页布局和交互...
- **分页或懒加载**:如果数据集很大,可考虑分页或只在需要时加载更多数据。 综上所述,ASP.NET AJAX 自动完成控件是一种强大且灵活的工具,能够轻松地集成到现有的 ASP.NET 应用中,提供高效的用户输入体验。通过...
- **`page-break-before`**:控制分页符是否出现在元素之前。 - **`page-break-after`**:控制分页符是否出现在元素之后。 #### 用户界面 - **`cursor`**:设置光标样式。 - **`outline`**:设置元素轮廓。 - **`...