필자도 이와 관련하여 필자는 도움이 될 수있는 코딩 패턴을 개발했습니다. JSF 2에서 북 마크 가능 링크를 사용하는 기술에 대한 자세한 내용은 PrimeFaces가 아닙니다.
마크 업에서 나는 페이지의 모든 매개 변수를 다음과 같이 포함합니다 :
<f:metadata>
<f:viewParam name="orderID" value="#{bean.orderID}" />
<f:viewParam name="sortMode" value="#{bean.sortMode}" />
<f:viewParam name="firstRecord" value="#{bean.firstRecord}" />
<f:viewParam name="pageSize" value="#{bean.pageSize}" />
</f:metadata>
값이 설정되지 않은 경우 적절한 기본 값을 생성하도록 해당 값이 백업 빈에 백업됩니다.
이제 사용자가 그 값을 변경할 컨트롤을 구현하고, 테이블을가 변경 될 때마다 다시 생성 예를 들어 다음과 같이
public int getPageSize() {
if (pageSize < MIN_PAGE_SIZE) pageSize = DEF_PAGE_SIZE;
if (pageSize > MAX_PAGE_SIZE) pageSize = DEF_PAGE_SIZE;
return pageSize;
}
이 볼 수있는 링크가 생성 될 수있다. 당신은 아직도 그것을 위해 AJAX를 사용한다 - 예를 들면 다음과 같습니다 setter 메소드에서
<p:spinner value=#{bean.pageSize} >
<p:ajax update="tableID" />
</p:spinner>
을, 테이블의 재생성을 트리거해야하지만 그것의 요점입니다. 이게 도움이 되길 바란다.
UPDATE : 당신에게 등
<h:link value="First Page" outcome="thisPage">
<f:param name="orderID" value="#{bean.orderID}" />
<f:param name="sortMode" value="#{bean.sortMode}" />
<f:param name="firstRecord" value="0" />
<f:param name="pageSize" value="#{bean.pageSize}" />
</h:link>
<h:link value="Next Page" outcome="thisPage">
<f:param name="orderID" value="#{bean.orderID}" />
<f:param name="sortMode" value="#{bean.sortMode}" />
<f:param name="firstRecord" value="#{bean.nextRecord}" />
<f:param name="pageSize" value="#{bean.pageSize}" />
</h:link>
: 링크는 다음과 같이 보일 것입니다
가 페이지 매김을 처리하기 위해, 당신은 단순히 등 첫 페이지, 이전 페이지, 다음 페이지에 대한 링크를 추가해야 백킹 빈에 속성을 구현하여 firstRecord 매개 변수를 계산해야합니다.
thx, 예, 뷰 매개 변수로 페이지 및 정렬 매개 변수를 사용하면 내가 아약스보다 선호합니다. 하지만 제 질문은 primefaces에서 layz로드 데이트를 사용하여이 접근법으로 페이지 매김과 정렬을 처리하는 방법에 관한 것입니다. – fischermatte
@fischermatte는 업데이트를 참조하십시오. – AlanObject
여전히 - 당신이 ajax 요청을 수행해서는 안되지만이 매개 변수로 새로운 페이지 요청을 호출해야한다는 것을 primefaces datatable의 paginator와 sorting 버튼에 어떻게 알리십니까? 거기에 내가 볼 수있는 유일한 솔루션은 정렬 및 페이지 매김을 사용하여 자신의 datatable 구성 요소를 작성하는 것입니다. 그러나 나는이 문제를 가진 첫 번째 사람인지 정말 궁금합니다. 내 관점에서 볼 때 이것은 컴포넌트 프레임 워크에 의해 처리되어야하는 기능입니다. – fischermatte