首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SimplePager行计数工作不正确

SimplePager行计数工作不正确
EN

Stack Overflow用户
提问于 2011-05-19 18:20:37
回答 4查看 4.7K关注 0票数 12

我使用的是SimplePager,我希望每页显示12个项目(用户)。我的整个数据集是20个项目。

问题是第一页(正确地)显示项目1-12,但第二页显示项目9-20。我希望第二页显示项目13-20。

出什么问题了?

下面是我的代码:

代码语言:javascript
复制
CellTable<User> cellTable = new CellTable<User>();

SimplePager pager = new SimplePager(TextLocation.CENTER);      
pager.setDisplay(cellTable);    
pager.setPageSize(12);


ListDataProvider<User> dataProvider = new ListDataProvider<User>();<br>
dataProvider.setList(USERSList);  
dataProvider.addDataDisplay(cellTable);

提前谢谢你!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-19 19:32:02

尝试设置:

代码语言:javascript
复制
setRangeLimited(false)

更多详细信息:

http://groups.google.com/group/google-web-toolkit/browse_thread/thread/45e77082b796281d/d5101729e83a74ff?lnk=gst&q=pager+last+page#d5101729e83a74ff

票数 7
EN

Stack Overflow用户

发布于 2011-11-05 05:01:27

设置

代码语言:javascript
复制
setRangeLimited(false)

将始终显示下一页。

相反,我将rangeLimited设置为true,并为此覆盖了以下方法:

代码语言:javascript
复制
@Override
public void setPageStart(int index) {
  if (getDisplay() != null) {
    Range range = getDisplay().getVisibleRange();
    int pageSize = range.getLength();

    // Removed the min to show fixed ranges
    //if (isRangeLimited && display.isRowCountExact()) {
    //  index = Math.min(index, display.getRowCount() - pageSize);
    //}

    index = Math.max(0, index);
    if (index != range.getStart()) {
      getDisplay().setVisibleRange(index, pageSize);
    }
  }
}
票数 11
EN

Stack Overflow用户

发布于 2012-09-02 20:00:46

@fbfcn和@MasterUZ的解决方案可以工作,只需做一些细微的修改,使其符合GWT2.4的SimplePager:

代码语言:javascript
复制
public class MySimplePager extends SimplePager {

    public MySimplePager() {
        this.setRangeLimited(true);
    }

    public MySimplePager(TextLocation location, Resources resources, boolean showFastForwardButton, int fastForwardRows, boolean showLastPageButton) {
        super(location, resources, showFastForwardButton, fastForwardRows, showLastPageButton);
        this.setRangeLimited(true);
    }

    public void setPageStart(int index) {

        if (this.getDisplay() != null) {
          Range range = getDisplay().getVisibleRange();
          int pageSize = range.getLength();
          if (!isRangeLimited() && getDisplay().isRowCountExact()) {
            index = Math.min(index, getDisplay().getRowCount() - pageSize);
          }
          index = Math.max(0, index);
          if (index != range.getStart()) {
            getDisplay().setVisibleRange(index, pageSize);
          }
        }  
      }
    }
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6057141

复制
相关文章

相似问题

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