首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT SimplePager问题

GWT SimplePager问题
EN

Stack Overflow用户
提问于 2017-01-30 15:04:29
回答 1查看 154关注 0票数 2

在我的应用程序中,我使用GWT的(2.5) SimplePager类来显示预加载的数据(我预先知道确切的行数)。

最后一页是问题所在。例如,我有42个元素,初始可见范围为10。第一页是1-10,第二页是11-20,第三页是21-30,第四页是31-40。问题是,第五页不是41-42页(我想要,因为我希望能够在相同的数据上来回滚动和“土地”),而是33-42页。

我尝试过各种重写SimplePager / AbstractPager方法的方法,但都没有成功。例如,如果我重写了com.google.gwt.user.cellview.client.AbstractPager.setPageStart(int),那么执行与setPageStart相同的操作,但是使用以下注释(我认为这是罪魁祸首代码):

代码语言:javascript
复制
if (isRangeLimited && display.isRowCountExact()) {
  index = Math.min(index, display.getRowCount() - pageSize);
}

最后一页很好(41-42页),但是这个页面将永远删除页面大小,当我从最后一页到前一页时,它将变成40-41页(预期为31-40页)。这可能是因为页面大小不是为寻呼机实例提供的某些常量,而是使用上次使用的Range对象("int pageSize = range.getLength();“在setPageStart方法中)计算的。

是否可以根据我的需要修改分页行为而不破坏任何东西?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-14 16:52:45

我最终找到了一个很简单的解决方案。我向我的SimplePager对象提供了一个页面大小(这是可以显示的元素的最大数量,而不管可显示的元素的总数)。然后,我重写了getPage()、hasNextPage()、hasNextPages(int)、hasPreviousPages(int)、nextPage()、previousPage()、setPageStart(int),以便在Range对象上使用提供的页面大小而不是getLength()。

来测试这个更容易(仍然是手工完成的)我使用了GWT的Showcase项目(并以dev模式运行)。

缺点是,我不得不将overriden方法的代码(从AbstractPager - SimplePager只调用超类的方法)复制到我的页面类中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41939084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档