GWT SimplePager问题

GWT SimplePager问题,gwt,Gwt,我在应用程序中使用GWT的(2.5)SimplePage类来显示预加载的数据(我预先知道确切的行数) 问题在于最后一页。例如,假设我有42个元素,初始可见范围为10。 第一页是1-10,第二页是11-20,第三页是21-30,第四页是31-40。 问题在于,第五页不是41-42页(我希望如此,因为我希望能够前后滚动并“降落”在完全相同的数据上),而是33-42页 我尝试了各种方法来修补覆盖SimplePage/AbstractPager方法,但没有成功。 例如,如果我重写setPageStart

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

问题在于最后一页。例如,假设我有42个元素,初始可见范围为10。 第一页是1-10,第二页是11-20,第三页是21-30,第四页是31-40。 问题在于,第五页不是41-42页(我希望如此,因为我希望能够前后滚动并“降落”在完全相同的数据上),而是33-42页

我尝试了各种方法来修补覆盖SimplePage/AbstractPager方法,但没有成功。 例如,如果我重写setPageStart,请执行与com.google.gwt.user.cellview.client.AbstractPager.setPageStart(int)相同的操作,但注释掉以下内容(我认为这是罪魁祸首代码):

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

在不破坏任何内容的情况下根据我的需要修改分页行为,有什么线索吗


谢谢

我最终得到了一个非常简单的有效解决方案。 我为我的SimplePage对象提供了一个页面大小(它是可以显示的最大元素数,与可显示的元素总数无关)。然后我重写了getPage()、hasNextPage()、hasNextPage(int)、hasPreviousPages(int)、nextPage()、PreviousPages()和setPageStart(int),以在Range对象上使用提供的页面大小而不是getLength()

为了更容易地测试这一点(仍然是手工完成的…),我使用了GWT的Showcase项目(并在开发模式下运行)

缺点是我必须将被重写方法的代码(从AbstractPager-SimplePager除了调用超类的方法外什么都不做)复制到我的Pager类中

if (isRangeLimited && display.isRowCountExact()) {
  index = Math.min(index, display.getRowCount() - pageSize);
}