GWT-具有简单寻呼机问题的celltable

GWT-具有简单寻呼机问题的celltable,gwt,Gwt,单元格表分页的行为异常。检查GWT中的示例 此处的页面大小定义为15。这就是问题所在- 点击最后一页按钮。显示了241到250的结果 现在单击上一个按钮-显示226-240的结果 现在单击“下一步”按钮(这就是问题所在)。它显示了从236到250的结果。然而,它应该显示241-250 我在我的项目中遇到了同样的问题。 这有什么解决办法吗???这是一个问题。正如bug报告中提到的,有一个解决方法: 作为解决方法,可以将SimplePager子类化,以覆盖它 方法setPageStart中定义的行

单元格表分页的行为异常。检查GWT中的示例

此处的页面大小定义为15。这就是问题所在-

  • 点击最后一页按钮。显示了241到250的结果
  • 现在单击上一个按钮-显示226-240的结果
  • 现在单击“下一步”按钮(这就是问题所在)。它显示了从236到250的结果。然而,它应该显示241-250
  • 我在我的项目中遇到了同样的问题。 这有什么解决办法吗???

    这是一个问题。正如bug报告中提到的,有一个解决方法:

    作为解决方法,可以将SimplePager子类化,以覆盖它 方法setPageStart中定义的行为:

    @Override
    public void setPageStart(int index) {
        if (this.getDisplay() != null) {
            Range range = this.getDisplay().getVisibleRange();
            int pageSize = range.getLength();
    //      if (isRangeLimited && display.isRowCountExact()) {
    //          index = Math.min(index, display.getRowCount() - pageSize);
    //      }
            index = Math.max(0, index);
            if (index != range.getStart()) {
                this.getDisplay().setVisibleRange(index, pageSize);
            }
        }
    }
    

    问题是,CellTable类被设计成按照给定的页面大小容纳数据。这就是问题所在。我原以为这可能会在GWT2.4版本中得到修复。您可以在GWT网站上记录此问题,希望在下一版本中可以解决此问题


    @进行寻呼机初始化时,必须设置:

    pager.setRangeLimited(false);
    
    此方法设置页面范围是否应限制为实际数据大小


    如果为true,所有操作都将进行调整,以便页面上始终显示数据。

    覆盖
    hasNextPage()
    ,如下所示

    pager = new SimplePager(TextLocation.CENTER,(SimplePager.Resources) GWT.create(Resources.class), false,10, true){
                        @Override
                        public boolean hasNextPage() {
                            if(this.getPage()<(this.getPageCount()-1)) {
                                return true;
                            }
                            return false;
                        }
                    };
    
    pager=newsimplepage(TextLocation.CENTER,(simplepage.Resources)GWT.create(Resources.class),false,10,true){
    @凌驾
    公共布尔值hasNextPage(){
    
    if(this.getPage()使用nextPage方法创建SimplePage的子类,如下所示

    public class CustomSimplePager extends SimplePager {
    
         @Override
         public void nextPage() {
               // TODO Auto-generated method stub
               HasRows display = getDisplay();
               if (display != null) {
               Range range = display.getVisibleRange();
                    if (hasNextPage())
                          setPageStart(range.getStart() + range.getLength());
               }
         }
     }
    

    并设置
    pager.setRangeLimited(false);

    正如我在回答中提到的,已经有报道说:我几乎被最后一页的问题弄疯了。默认情况下,这应该被禁用。这是一个无限下一页的问题。在