我希望显示批量数据,如cell list,但我的问题是,我想要显示50条记录(我将加载50个数据到单元格列表),当用户向下滚动我的RPC服务将加载25 more.On上面的例子,我们必须加载所有的数据,但我不想加载整个数据到单元格列表,我希望加载更多的当用户向下滚动。
发布于 2016-06-09 16:52:54
可以使用以下方法来完成此操作
1)捕获单元格列表中显示的最后一条记录的索引。此参数帮助我们查询下一组记录。
2)当用户向下滚动到想要加载更多记录的位置时,触发一个事件
3)处理事件,该事件使用最后一个显示记录的索引命中您的RPC服务。
4)更改您的RPC服务以处理index(上次显示的记录索引)参数。
5)收到响应后,使用新记录更新单元格列表,更新时应将新接收到的数据追加到已有的单元格列表数据中。
发布于 2016-06-15 19:45:23
我用示例example做到了这一点,我只是把我自己的函数放到了ShowMorePagerPanel自定义类中。
public ShowMorePagerPanel() {
initWidget(scrollable);
// Do not let the scrollable take tab focus.
scrollable.getElement().setTabIndex(-1);
// Handle scroll events.
scrollable.addScrollHandler(new ScrollHandler() {
public void onScroll(ScrollEvent event) {
// If scrolling up, ignore the event.
int oldScrollPos = lastScrollPos;
lastScrollPos = scrollable.getVerticalScrollPosition();
if (oldScrollPos >= lastScrollPos) {
return;
}
HasRows display = getDisplay();
if (display == null) {
return;
}
int maxScrollTop = scrollable.getWidget().getOffsetHeight()
- scrollable.getOffsetHeight();
if (lastScrollPos >= maxScrollTop) {
// now we can add more data
**createData(); // creates 30 more data with RPC service**
int newPageSize = Math.min(
display.getVisibleRange().getLength() + incrementSize,
display.getRowCount());
display.setVisibleRange(0, newPageSize);
}
}
});}
https://stackoverflow.com/questions/37720585
复制相似问题