0

私はSimplePagerでGWT DataGridを使用して私のデータを表示しています。

コンポーネントは最初のページを正しく表示しますが、表示する行が 10 行未満であっても、最後のページには常に 10 行 (10 = SimplePager.pagesize) が表示されます。

誰でもこの問題について考えがありますか?

ありがとう。

4

1 に答える 1

1

以前にも同様の問題が発生しました。小さな違いは、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);
        }
    }
}

}
于 2016-03-11T20:35:44.380 に答える