私はAjaxページネーションでデータリストを使用しています。最初のページが正常にロードされ、5件の結果が表示されます。私は3ページの価値があることを知っていますが、2ページ目/ 3ページ目までクリックすると空のリストが表示されます。Primefaces Datalistページネーション
私のモデルはLazyDataModelを拡張し、初めてページが読み込まれたときにload()メソッドでブレークポイントを設定することができ、結果が1-5であることがわかりました。しかし、 'page 2'をクリックしても、loadメソッドが呼び出されることはありません(lazyDataModelフィールド自体を呼び出す回数は3回程度になります)。
多くのことを読んでいてもさまざまなことを試してみても、どのようにすればよいのか分かりませんが、このショーケースの例は私にとっては完全なものではありません。 )の書式については申し訳ありません:。
@PostConstruct
public void LoadData() {
lazyModel = new LazyDataModel<MessageboardThread>() {
@Override
public List<MessageboardThread> load(int first, int pageSize, String sortField, SortOrder so, Map<String, String> map) {
List<MessageboardThread> result = new ArrayList<MessageboardThread>();
try {
result = mbDao.findAll(pageSize, first);
} catch (Exception ex) {
ex.printStackTrace();
}
return result;
}
};
getLazyModel().setRowCount(mbDao.count());
getLazyModel().setPageSize(pageSize);
}
この方法は、私は、次/前のページに /** 01をクリックするたびに実行されますDOES* @return the lazyModel */ public LazyDataModel getLazyModel(){ return lazyModel; }
そして、これは私のXHTMLファイルである
<p:dataList value="#{messageboardBean.lazyModel}" var="thread" id="threads"
paginator="true" rows="5" effectSpeed="fast"
paginatorTemplate="{PreviousPageLink} {CurrentPageReport} {NextPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15" type="none"
paginatorPosition="bottom">
<f:facet name="header">
Conversations
</f:facet>
<p:column>
<h:outputText value="#{thread.title}" style="margin-left:10px" />
<br />
</p:column>
</p:dataList>
私はに良い場所であるように見えたので、私はそこ@PostContruct注釈を入れて任意のヘルプ
PS用ので、本当に感謝して困惑セットアップを行うが、それは間違っている可能性がある、私は他の例でそれを見ていないが、私はいずれかの他の例を得ることができなかった。
解決策を受け入れたとマークすると、質問をブラウズする際の混乱が少なくなります。 – Fallup
私はそれが私に – Richard