SimplePager错误显示元素计数

时间:2012-05-14 15:33:04

标签: gwt

[JAVA]

我正在使用CellTable和SimplePager,通过RPC在我的数据提供者中获取数据。效果很好。

寻呼机显示例如“14-28 of 120”,这是正确的。 当查询返回要显示的零元素时,即使我使用my_cellTable.setRowCount(0);

,寻呼机也会显示“1-1 of 0”

如何让它显示“0 of 0”??

2 个答案:

答案 0 :(得分:3)

是的,有这个问题。要解决此问题,您需要创建自己的自定义寻呼机。扩展SimplePager并覆盖方法createText()。例如:

public class MySimplePager extends SimplePager {
    @Override
    protected String createText() {
        NumberFormat formatter = NumberFormat.getFormat("#,###");
        HasRows display = getDisplay();
        Range range = display.getVisibleRange();
        int pageStart = range.getStart() + 1;
        int pageSize = range.getLength();
        int dataSize = display.getRowCount();
        int endIndex = Math.min( dataSize, pageStart + pageSize - 1);
        endIndex = Math.max(pageStart, endIndex);
        boolean exact = display.isRowCountExact();
        if (dataSize == 0) {
           return "0 of 0";
        } else if (pageStart == endIndex) {
                 return formatter.format(pageStart) 
                        + " of "
                        + formatter.format(dataSize);
        }
        return formatter.format(pageStart)
            + "-"
            + formatter.format(endIndex)
            + (exact ? " of " : " of over ")
            + formatter.format(dataSize);
    }
}

答案 1 :(得分:0)

我所做的只是在元素数为0时将寻呼机的可见性设置为false。