1

DataTable - Lazy Loading サンプルを実装しました。this oneに似ていますが、データベースからデータをロードしますが、重要ではありません。

ので、私は持っています:

public class LazyCarDataModel extends LazyDataModel<Car> { 

    ...
}

public class TableBean {  

    private LazyDataModel<Car> lazyModel;  

    ...
}

プロジェクトのどこかで、この車のリストの現在のページがどのように見えるかを知る必要があります。私もです:

List<T> currentCarList = (List<T>)getTestTableBean().getLazyModel().getWrappedData();

そして、私が持っています。最後に読み込まれた車 (現在ブラウザで表示可能)。しかし、次のページと前のページがどうなるかも確認する必要があります。ユーザーが「次のページ」をクリックする前に、「注意!次のページにフェラーリがあります!」という警告メッセージが表示されます。:D

最後に、私の質問: 遅延読み込みを使用しているときに、次のページと前のページを取得するにはどうすればよいですか?

4

1 に答える 1

1

メソッドで自分で追跡することができますLazyDataModel#load()

private List<Car> prev;
private List<Car> next;

@Override
public List<Car> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) {
    this.setRowCount(service.count());
    this.prev = service.list(first - pageSize, pageSize);
    this.next = service.list(first + pageSize, pageSize);
    return service.list(first, pageSize);
}    

public List<Car> getPrev() {
    return prev;
}

public List<Car> getNext() {
    return next;
}

必要な場所で実行するだけ

List<Car> prev = tableBean.getLazyCarDataModel().getPrev();
// ...
于 2013-09-06T11:44:58.380 に答える