为什么仅当范围有限或行数为'时,才禁用GWT SimplePage下一个/最后一个按钮;不确切吗?

为什么仅当范围有限或行数为'时,才禁用GWT SimplePage下一个/最后一个按钮;不确切吗?,gwt,Gwt,使用GWT 2.5.1,SimplePage.java具有以下方法: @Override protected void onRangeOrRowCountChanged() { HasRows display = getDisplay(); label.setText(createText()); // Update the prev and first buttons. setPrevPageButtonsDisabled(!hasPreviousPage());

使用GWT 2.5.1,SimplePage.java具有以下方法:

@Override
protected void onRangeOrRowCountChanged() {

   HasRows display = getDisplay();
   label.setText(createText());

   // Update the prev and first buttons.
   setPrevPageButtonsDisabled(!hasPreviousPage());

   // Update the next and last buttons.
   if (isRangeLimited() || !display.isRowCountExact()) {
      setNextPageButtonsDisabled(!hasNextPage());
      setFastForwardDisabled(!hasNextPages(getFastForwardPages()));
   }
}
为什么只有在范围有限或行数不准确时才启用/禁用下一个/最后一个按钮?我将寻呼机设置为range limited false,并且我的异步数据提供程序在我更新行数时指定行数是精确的。使用此设置,下一个/最后一个分页按钮将永远不会更新

我只是用错了,还是一个bug

我通过子类化SimplePage来解决这个问题,使我能够进入onRangeOrRowCountChanged()底部的块:


AIUI,如果范围不受限制,则显式允许寻呼机超出可用数据并显示空页面


如果行数不准确,则应启用“下一步”按钮,因为
hasNextPage
将返回
true
(如果快进超出了已知但不精确的行数,快进将被禁用)。这适用于范围是否受限,这可能是错误,也可能不是错误。

我的意图是范围受限(我不想让寻呼机显示空页),行数精确(我确实知道确切的数字)。你认为这是正常的用法?您的答案是“这可能是一个bug吗?”如果您的目的是限制范围,那么您为什么要将寻呼机配置为
false
?SimplePager的古怪之处并不止我一个人。看见“我注意到,如果调用setRangeLimited(false),您会得到预期的行为,但前进按钮不会变灰。”哦,我不是说SimplePager没有bug,只是上面显示的代码中没有bug。不过,补丁非常受欢迎;-)[编辑,无法编辑评论,为了清晰起见,将编辑过的评论重新发布在此处]我在另一条评论中说,我不想让寻呼机显示空页,但在我的原始代码中,我将range limited设置为false,因为有一些奇怪的行为:对于13项的手动测试,如果range limited为真,那么当我反复单击next时,它只是在前两页(1-5和6-10)之间来回跳跃。设置范围限制为false允许其继续到最后一页(项目11-13)。也许我是“做错了?”如果你能评论一下为什么这次投票被否决,我将不胜感激。我认为这是一个有道理的、问得很清楚的问题。
    @Override
    protected void onRangeOrRowCountChanged() {
        boolean rangeLimited = isRangeLimited();
        super.setRangeLimited(true);
        super.onRangeOrRowCountChanged();
        super.setRangeLimited(rangeLimited);
    }