1

我最近达到了可以使用光标检索数据的地步(请参阅此链接:GWT pass Objectify Cursor from Server to Client with RequestFactory and show more pages in DataGrid

我遇到了什么 - 当我在客户端获取数据包时,它只有一个 25 个列表 - 当我在 DataGrid 中设置数据时,底部的寻呼机显示 25 个中的 1-25 个,显然还有更多数据库中的记录我一次只用光标检索其中的 25 个

我尝试做的是设置以下内容:

pager.setRangeLimited(false);

不幸的是——虽然这允许我从数据库中分页和选择更多——但它实际上从来没有给我数据库中的数量。我想知道的是,如果我在服务器端使用光标 - 我如何设置寻呼机中的总数?

我想做的一件事就是简单地向我返回的 ListCursor 包装器对象添加一个总计数变量 - 不幸的是,这将要求如果我使用空初始查询请求它,我每次都要经过并获得总计数 - 这似乎效率极低——一旦我把它拿回来,我仍然不知道如何实际告诉寻呼机可用的数据比我实际提供的数据多。

对此的任何帮助将不胜感激

4

1 回答 1

0

通过告诉寻呼机行数是准确的,您可以在寻呼机中设置总计数:

asyncDataProvider.updateRowCount(int size, boolean exact);

如果您不告诉寻呼机行数是准确的,那么您显然无法导航到最后一页。

核心问题是如何掌握总行数。查询行数确实非常低效。更好的选择是在数据存储中保留一个计数器来跟踪记录的数量。这也可能非常低效,因为你有这个计数器同步/事务的增量。

在我的项目中,我不跟踪确切的行数,但我提供了灵活的搜索选项。

于 2012-06-16T19:51:02.097 回答