4

使用 GWT 2.5.1,SimplePager.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()));
   }
}

为什么只有在范围有限或行数不准确时才启用/禁用下一个/最后一个按钮?我将寻呼机设置为范围限制为 false,并且我的异步数据提供程序指定当我更新行数时行数是准确的。使用此设置,下一个/最后一个分页按钮将永远不会更新!

我只是使用了这个错误,还是一个错误?

我通过子类化 SimplePager 来解决这个问题,以允许我进入 onRangeOrRowCountChanged() 底部的那个块:

    @Override
    protected void onRangeOrRowCountChanged() {
        boolean rangeLimited = isRangeLimited();
        super.setRangeLimited(true);
        super.onRangeOrRowCountChanged();
        super.setRangeLimited(rangeLimited);
    }
4

1 回答 1

4

AIUI,如果范围不受限制,您明确允许寻呼机超出可用数据并显示空白页面。

如果行数不准确,则应启用下一个按钮,因为hasNextPage它将返回true(如果快进超出了已知的 - 尽管不准确 - 行数,则将禁用快进)。这适用于范围是否有限,这可能是也可能不是错误。

于 2013-06-04T15:12:40.720 回答