[JAVA]
CellTableとSimplePagerを使用して、RPCを介してデータプロバイダーでデータを取得しています。よく働く。
ポケットベルは、たとえば「14-28 of 120」を表示していますが、これは正しいです。クエリが表示する要素をゼロにすると、ポケットベルは「1-1of0」を表示します。my_cellTable.setRowCount(0);
「0of0」を表示するにはどうすればよいですか?
[JAVA]
CellTableとSimplePagerを使用して、RPCを介してデータプロバイダーでデータを取得しています。よく働く。
ポケットベルは、たとえば「14-28 of 120」を表示していますが、これは正しいです。クエリが表示する要素をゼロにすると、ポケットベルは「1-1of0」を表示します。my_cellTable.setRowCount(0);
「0of0」を表示するにはどうすればよいですか?
はい、この問題があります。この問題を修正するには、独自のカスタムページャーを作成する必要があります。メソッドを拡張 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);
}
}
私がしたことは、要素の数が0のときにページャーの可視性をfalseに設定することだけです。