2012-04-21 7 views
1

私は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用ので、本当に感謝して困惑セットアップを行うが、それは間違っている可能性がある、私は他の例でそれを見ていないが、私はいずれかの他の例を得ることができなかった。

答えて

1

解決しました。私はh:formタグにdataList属性をラップするのを忘れていました。今はうまくいく。

+0

解決策を受け入れたとマークすると、質問をブラウズする際の混乱が少なくなります。 – Fallup

+0

私はそれが私に – Richard