私はSimplePagerでGWT DataGridを使用して私のデータを表示しています。
コンポーネントは最初のページを正しく表示しますが、表示する行が 10 行未満であっても、最後のページには常に 10 行 (10 = SimplePager.pagesize) が表示されます。
誰でもこの問題について考えがありますか?
ありがとう。
私はSimplePagerでGWT DataGridを使用して私のデータを表示しています。
コンポーネントは最初のページを正しく表示しますが、表示する行が 10 行未満であっても、最後のページには常に 10 行 (10 = SimplePager.pagesize) が表示されます。
誰でもこの問題について考えがありますか?
ありがとう。
以前にも同様の問題が発生しました。小さな違いは、DataGrid の代わりに Celltable を使用していたことです。
この問題は、gwt の既知のバグに起因しており、詳細はgithub ページで確認できます。明らかに、それはまだ修正されています。
回避策は、SimplePager をサブクラス化し、カスタム ページャー クラスを作成することです。
import com.google.gwt.user.cellview.client.SimplePager;
import com.google.gwt.view.client.Range;
public class CustomPager extends SimplePager {
public CustomPager() {
this.setRangeLimited(true);
}
@Override
public void setPageStart(int index) {
if (this.getDisplay() != null) {
Range range = this.getDisplay().getVisibleRange();
int pageSize = range.getLength();
index = Math.max(0, index);
if (index != range.getStart()) {
this.getDisplay().setVisibleRange(index, pageSize);
}
}
}
}