저는 Ajax 페이지 매김과 함께 datalist를 사용하고 있습니다. 첫 페이지가 잘로드되어 5 개의 결과를 보여줍니다. 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);
}
/** * @return lazyModel */ 공개 LazyDataModel getLazyModel() { return lazyModel; }
그리고이은에 좋은 장소가 될 듯하기 때문에 내가 어떤 도움을 내가 거기 @PostContruct 주석을 넣어
PS에 대한 그래서 정말 감사 난처한 상황에 빠진거야
<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>
내 XHTML 파일입니다 설정을해라. 그러나 그것이 틀릴 수 있었다, 나는 다른 어떤 예에서도 그것을 보지 못했다. 그러나 나는 다른 예제도 얻을 수 없었다.
솔루션을 승인 된 것으로 표시하면 질문을 탐색하는 데 덜 혼란 스럽습니다. – Fallup
내가 그렇게하면 – Richard