2013-06-30 3 views
1

인쇄 조치로 조치 또는 actionListner 메소드를 단독으로 실행하는 방법. 예를 들어, 두 개의 버튼을 누르지 않고 백 콩 방법으로 인쇄 한 것처럼 지폐를 인쇄하고 인쇄 지폐를 표시 할 수 있습니까?조치로 인쇄

<h:commandButton value="Print" actionListener="#{labBillController.markAsPrinted()}" > 
    <p:printer target="panelBill" ></p:printer> 
</h:commandButton> 

위 코드의 두 가지 동작이 동시에 일어나지 않습니다. ajax가 사용되면 actionListner 메소드가 실행됩니다. non-ajux이면 인쇄 만 수행하지만 Method는 실행하지 않습니다.

답변

1

사용이

<h:commandButton value="Print" actionListener="#{labBillController.markAsPrinted()}" > 
    <f:ajax execute="@this" /> 
    <p:printer target="panelBill" /> 
</h:commandButton> 
+0

이 잘 작동합니다. 내 실제 요구 사항은 DataGrid에 청구서를 나열하고 f : setPropertyActionListener를 사용하여 선택한 행의 청구서를 인쇄하는 것이었지만 명령 단추 내에 추가하면 동일한 문제가 다시 발생합니다. –

+1

@BuddhikaAriyaratne 왜 이것이 완벽하게 솔직하게 일어나고 있는지 모르겠습니다. 만약 내가''p : printer''가 "ajaxified"라고 말할 것 같지만'h : commandButton'을 누르면 번역에서 잃어버린 것이 아닌 것 같아요. 그래서 이것을 피하기 위해'h : commandButton'을 조제했습니다. 양식을 제출하면 모든 아약스 요청이 선착순 방식으로 제공됩니다. (* 생각합니다 *) – Andy

+1

@BuddhikaAriyaratne 'h : commandButton', 'h : commandButton'을 ajaxifying하면 무슨 뜻인지 궁금해 할 수도 있습니다. 기본적으로'f : ajax'를 첨부하고 이벤트를 지정하지 않으면'actionListener' 메소드를 호출합니다. 그래서, actionListener가 먼저 호출 된 다음'p : printer'가 호출됩니다. – Andy

관련 문제