2014-05-09 5 views
0

닫기 : 내가/취소 버튼을 "감소"를 클릭하면내가 primefaces 5.0을 사용하고 있는데 나는이 상황을 대화 나던 작업

<composite:implementation> 

<p:dialog id="confirmDialog#{cc.attrs.someParam}" 
    rendered="#{cc.attrs.nextState.warnRequired}" severity="alert" resizable="false" modal="#{cc.attrs.modal}" 
    widgetVar="confirmation#{cc.attrs.someParam}"> 

    <p:commandButton value="#{msg[cc.attrs.nextState.buttonKey]}" icon="#{nextStatus.icon}" 
     action="#{someActionCalled}" 
     update="#{cc.attrs.update}" process="#{cc.attrs.process}" 
     oncomplete="if (!args.validationFailed) { PF('confirmation#{cc.attrs.someParam}').hide(); }"> 
    </p:commandButton> 


    <p:commandButton id="decline" value="#{msg['action.cancel']}" icon="ui-icon ui-icon-cancel" 
     onclick="PF('confirmation#{cc.attrs.someParam}').hide()" /> 

</p:dialog> 


</composite:implementation> 

, confirmDialog가 닫혀/가죽을. 괜찮아. # {cc.attrs.someParam}이 (가) 위젯을 찾을 수 있는지 확인하고이 대화 상자를 닫습니다. 내가 다시 빈에서 어떤 행동을 확인하고 취할 첫 번째 버튼을 클릭하면
그러나 내가 얻을 :

Widget for var 'confirmationSomeParam' not available! 
primef...mefaces (line 1) 
detailed error: TypeError: PF(...) is null 


{cc.attrs.someParam}

가에 전달

구성 요소. 깔끔한 평가 값 (첫 번째 버튼이 대화 widgetVar와 두 번째를 찾을 수 없습니다 있도록 매우 이상한 obviusly 두 번째 버튼을 닫을 수 있기 때문에 대화.
그래서 내가이 중요한 부분을 확인하기 위해 다시 시간이 있었다?

답변

0

수있다 코드에서 두 버튼에서 remoteCommand :

<p:remoteCommand name="somethingToDo" update="#{cc.attrs.update}" />

을 먼저 버튼에서 나는이 내 응용 프로그램과 여기에 메신저 게시물의 미래에 누군가가 아마도 이것이 내가 페이지 추가 한

유용 :)를 찾을 수 있도록 제거 된 업데이트 매개 변수.

왜? 오류 메시지 에서처럼 dialogId (이 예제에서는 'confirmation332m')를 찾을 수 없으며 전체 양식을 업데이트하는 해당 업데이트 매개 변수로 인해 대화 상자가 제거/업데이트되었습니다.

버튼에서 원격 명령으로 업데이트 매개 변수를 이동했습니다. onComplete 모든 유효성 검사를 확인한 후에 somethingToDo();을 호출하기 만하면됩니다. 하지만 지금 작동

어쩌면이 아니 최적의 솔루션) 미래의 문제에 대한

PF 포럼 링크() : http://forum.primefaces.org/viewtopic.php?f=3&t=37851

관련 문제