2017-02-18 6 views
0

내 프로젝트에서 primefaces 구성 요소를 사용하고 있습니다.Primefaces PickList Ajax 전송 이벤트가 실행되지 않음

제 질문은 pickList 구성 요소에 관한 것입니다.

<p:pickList> 
    <p:ajax event="transfer" listener="#{rotaBean.operacao}" update="msg frequencia" process="pickList" partialSubmit="true" 
     oncomplete="if (args.validationFailed){ PF('periodoColeta').hide();} else{ PF('periodoColeta').show();}" /> 
</p:pickList> 

pickList의 소스 목록에 항목이 많이있을 때 전송 이벤트 ajax가 호출되지 않습니다.

소스 목록에는 약 2000 개의 항목이 있습니다.

왜 발생합니까?

도와주세요.

나는 어제 프라임 공동체의 질문에 물었다.

Primefaces Community

은 누군가가 제발 도움이 될 수 있습니다.

해결책이 있습니까?

답변

0

코드를 테스트하지는 않았지만 p:pickList은 제출시 모든 소스와 대상을 모두 처리한다는 것입니다. 즉, 변환기가 모든 엔티티에 대해 실행된다는 것을 의미하며, 각 엔티티에 대해 데이터베이스를 호출하는 것을 의미합니다 엔티티 그것은 오랜 시간이 걸립니다.

소스 목록을 처리하지 않도록하는 방법을 찾으면 다른 문제가 발생하여 dom과 backing bean을 동기화 상태로 유지합니다 (예 : 오류 발생).

이것이 문제인 경우 가장 쉬운 해결책은 OmniFaces ListConverter을 사용하는 것입니다. 정말 훌륭하게 작동합니다. 그러나 그것이 내가 모르는 모든 단일 전송에서 모든 것을 변환하기에 충분히 빠를 지 여부.

+0

난 그냥 AJAX 전송 이벤트를 처리하고 있습니다. – Miltex

+0

당신은 process = "pickList"를 가지고있어서 그것을 처리 할 것입니다 –

+0

소스 항목 만이 나의 Bean에 제출됩니다. – Miltex