标签: pagination

什么分页方案可以处理快速变化的内容列表?

当您的内容排名可以快速变化时,分页很难,当每个用户的排名不同时,分页就更难了.(让我们将无限卷轴视为一种链接不可见的分页.)有两个难题:顶部新添加的内容和重新排列的内容.

让我们忘记新添加的内容,并接受您必须刷新第1页才能看到它.我们也假装我们做的很纯粹ORDER BY position; 如果您按其他方式订购,则可能必须使用窗口功能.我们的页面每页有4行动物.他们开始:

+----+----------+-----------+
| id | position^|  animal   |
+----+----------+-----------+
|  1 |        1 | Alpacas   |
|  2 |        2 | Bats      |
|  3 |        3 | Cows      |
|  4 |        4 | Dogs      |
|  5 |        5 | Elephants |
|  6 |        6 | Foxes     |
|  7 |        7 | Giraffes  |
|  8 |        8 | Horses    |
+----+----------+-----------+
Run Code Online (Sandbox Code Playgroud)

在我们获取第1页之后,在我们获取第2页之前,很多项目都会移动.DB现在是:

+----+----------+-----------+
| id | position^|  animal   | …
Run Code Online (Sandbox Code Playgroud)

database pagination complex-event-processing

40
推荐指数
3
解决办法
3170
查看次数

ui-bootstrap分页在初始化时重置当前页面

我正在使用ui-bootstrap(angular-bootstrap)库中的分页指令.初始化时我遇到了问题.当我通过url导航到特定页面时,会出现问题.

发生的事情是我的控制器使用$ stateParams中的正确页面进行初始化,然后分页指令初始化并触发ng-change函数,该函数将页面重置为1.现在不再使用on-select-page,是否存在一种只捕获用户点击以更改页面的方法?理想情况下,我希望指令在控制器之前初始化,以便我的页面不会被重置.先感谢您.

如果需要,我可以包含代码,但我觉得我的问题不一定需要代码块.

pagination angularjs angular-ui-bootstrap

39
推荐指数
3
解决办法
2万
查看次数

Paginate Javascript数组

我想写一个JavaScript函数,它接受一个array,page_sizepage_number作为参数,并返回一个数组模仿分页结果:

paginate: function (array, page_size, page_number) {
  return result;
}
Run Code Online (Sandbox Code Playgroud)

例如,当:

array = [1, 2, 3, 4, 5],
page size = 2,
page_number = 2,
Run Code Online (Sandbox Code Playgroud)

该函数应该返回:[3, 4].

任何想法,将不胜感激.

javascript arrays pagination

39
推荐指数
3
解决办法
3万
查看次数

检测DataTable上的页面更改

使用DataTable,我可以订购,列表,分页,但我想检测分页何时更改,我已经看过API,但我唯一可以做的是更改页面但没有检测到此更改.

jquery pagination datatables

38
推荐指数
6
解决办法
10万
查看次数

jQuery DataTables分页大小

我一直在使用jQuery DataTables插件(http://datatables.net)很长一段时间,通常我们使用默认大小和使用"bStateSave": true选项超级精细.

但现在我真的需要将分页的大小设置为[10,25,50,100]而不是我需要这个,比如说[1,2,3].我通过设置选项让菜单设置如此,aLengthMenu:[1,2,3]如果我选择其中一个选项,它会设置正确的选择量.

但是在dataTable STARTUP上,它没有将长度设置为1,2,3而是设置为默认值"10"

我错过了哪个选项?提前致谢!

jquery pagination datatables

38
推荐指数
2
解决办法
8万
查看次数

Android中的分页文本

我正在为Android编写一个简单的文本/电子书查看器,因此我使用了TextView向用户显示HTML格式的文本,因此他们可以通过来回浏览页面中的文本.但我的问题是我不能在Android中对文本进行分页.

我不能(或者我不知道如何)从断行和分页算法中获得适当的反馈,其中TextView用于将文本分成行和页面.因此,我无法理解内容在实际显示中的结束位置,以便我继续从下一页的剩余部分开始.我想找到克服这个问题的方法.

如果我知道屏幕上绘制的最后一个字符是什么,我可以轻松地填充足够的字符来填充屏幕,并且知道实际绘画的完成位置,我可以继续下一页.这可能吗?怎么样?


在StackOverflow上已经多次询问过类似的问题,但没有提供令人满意的答案.这些只是其中的一小部分:

有一个答案,似乎有效,但它很慢.它会添加字符和行,直到填充页面.我不认为这是打破分页的好方法:

它不是这个问题,而是PageTurner电子书阅读器大部分都是正确的,尽管它有点慢.

PageTurner电子书阅读器的屏幕截图


PS:我不局限于TextView,我知道断行和分页算法可能非常复杂(如在TeX中),所以我不是在寻找一个最佳答案,而是一个相当快速的解决方案,可以被用户.


更新:这似乎是获得正确答案的良好开端:

有没有办法检索TextView的可见行数或范围?

答:完成文本布局后,可以找到可见文本:

ViewTreeObserver vto = txtViewEx.getViewTreeObserver();
        vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                ViewTreeObserver obs = txtViewEx.getViewTreeObserver();
                obs.removeOnGlobalLayoutListener(this);
                height = txtViewEx.getHeight();
                scrollY = txtViewEx.getScrollY();
                Layout layout = txtViewEx.getLayout();

                firstVisibleLineNumber = layout.getLineForVertical(scrollY);
                lastVisibleLineNumber = layout.getLineForVertical(height+scrollY);

            }
        });
Run Code Online (Sandbox Code Playgroud)

java pagination android textview android-layout

38
推荐指数
3
解决办法
5740
查看次数

在执行选择和计数查询时,是否有更有效的方式在Hibernate中进行分页?

通常分页查询看起来像这样.有没有更好的方法,而不是两个几乎相同的方法,其中一个执行"select*..."而另一个"count*..."?

public List<Cat> findCats(String name, int offset, int limit) {

    Query q = session.createQuery("from Cat where name=:name");

    q.setString("name", name);

    if (offset > 0) {
        q.setFirstResult(offset);
    }
    if (limit > 0) {
        q.setMaxResults(limit);
    }

    return q.list();

}

public Long countCats(String name) {
    Query q = session.createQuery("select count(*) from Cat where name=:name");
    q.setString("name", name);
    return (Long) q.uniqueResult();
}
Run Code Online (Sandbox Code Playgroud)

java mysql pagination hibernate hql

37
推荐指数
3
解决办法
3万
查看次数

在Spring中将List转换为Page

我试图在春天将列表转换为页面.我用它转换了它

new PageImpl(users,pageable,users.size());

但现在我有排序和分页本身的问题.当我尝试传递大小和页面时,分页不起作用.

这是我正在使用的代码.

我的控制器

    public ResponseEntity<User> getUsersByProgramId(
        @RequestParam(name = "programId", required = true) Integer programId Pageable pageable) {

    List<User> users = userService.findAllByProgramId(programId);
    Page<User> pages = new PageImpl<User>(users, pageable, users.size());

    return new ResponseEntity<>(pages, HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)

这是我的用户回购

public interface UserRepo extends JpaRepository<User, Integer>{

public List<User> findAllByProgramId(Integer programId);
Run Code Online (Sandbox Code Playgroud)

这是我的服务

    public List<User> findAllByProgramId(Integer programId);
Run Code Online (Sandbox Code Playgroud)

java spring pagination list spring-data

37
推荐指数
7
解决办法
5万
查看次数

如何从给定行号开始在MySQL中选择行?

假设我在MySQL表中有50行.我想选择前十(LIMIT 10),但我希望能够在不同的页面上选择下一个10.

那么如何在第10行之后开始我的选择呢?

更新的查询:

mysql_query("
    SELECT * FROM `picdb`
    WHERE `username` = '$username'
    ORDER BY `picid` DESC
    LIMIT '$start','$count'
")
Run Code Online (Sandbox Code Playgroud)

php mysql pagination limit

36
推荐指数
2
解决办法
7万
查看次数

只在mysql"show tables"中显示具有某些模式的表

数据库中有太多表.我怎样才能显示具有某些模式的表格?或者有没有办法在shell命令中像"| more"那样进行分页?

mysql pagination show

35
推荐指数
2
解决办法
2万
查看次数