我希望显示大量数据,例如cell list,但我的问题是,我希望显示50条记录(我将50个数据加载到单元格列表)当用户向下滚动时,我的RPC服务将加载25个以上.On上面的例子,我们必须加载所有数据,但我不想将整个数据加载到单元格列表,我希望在用户向下滚动时加载更多。
答案 0 :(得分:0)
可以使用以下方法完成
1)捕获Cell列表中显示的最后一条记录的索引。 此参数可帮助我们查询下一组记录。
2)当用户向下滚动到您想要加载更多记录的位置时触发事件
3)处理事件,然后使用最后显示记录的索引命中RPC服务。
4)更改RPC服务以处理索引(最后显示的记录索引)参数。
5)收到回复后,用新记录更新单元格列表, 更新时,您应将新接收的数据附加到现有的单元格列表数据。
答案 1 :(得分:0)
我用示例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);
}
}
});
}