데이터 표의 버튼을 클릭하면 대화 상자를 열려고합니다. 대화 상자에는 버튼이 속한 행과 관련된 세부 정보가있는 다른 데이터 테이블이 있습니다. 리스너는 상세 데이터 테이블에 필요한 변수를 설정합니다. 다음 스 니펫을 사용하면 actionListener가 시작되기 전에 업데이트 (및 세부 정보 테이블에서 사용되는 목록 만들기)가 수행되므로 대화 상자의 dataTable이 항상 비어있는 것처럼 보입니다. 왜? 그게 원하는 행동인가요? 내 문제를 해결할 다른 방법이 있습니까?p : commandButton을 사용하여 아약스 프로세스 후에 actionListener가 호출되는 이유는 무엇입니까?
동일한 결과를 갖는 actionListener 대신 action을 사용했습니다. 당신으로
INFO: getTimbratureDataList
INFO: Nessuna timbratura.
INFO: getTimbratureDataList
INFO: Nessuna timbratura.
INFO: getTimbratureDataList
INFO: Nessuna timbratura.
INFO: getDettaglioDataList list dettaglio: 4
INFO: timbratureDettAction
INFO: gius corrente 315
: 호출의 순서 여기
<p:dialog header="#{msgs.timbrature}" widgetVar="tDialog" resizable="false">
<p:dataTable id="timbrature_dt"
value="#{dispCongediMBean.timbratureDataList}"
var="tdett">
<p:column>
<f:facet name="header">
#{msgs.data}
</f:facet>
<h:outputText value="#{tdett.sDtComp}"/>
</p:column>
....
됩니다 : 여기
<p:column style="width:16px;padding-left:4px;padding-right:4px;">
<f:facet name="header">
</f:facet>
<p:commandButton image="ui-icon ui-icon-search"
style="width:1.8em;height:1.8em"
onsuccess="tDialog.show()"
title="#{msgs.dettaglio}"
process="@this, timbrature_dt"
update="timbrature_dt"
immediate="true"
actionListener="#{dispCongediMBean.timbratureDettAction(dett)}">
</p:commandButton>
</p:column>
대화입니다 : 여기
첫 번째 데이터 테이블의 요소 버튼입니다 getTimbratureDataList() 메소드는 t를 올바르게 설정 한 actionListener timbratureDettAction() 전에 호출됩니다. 그는 불행히도 사용되지 않는 가치가 있습니다.
글래스 피쉬와 프라임 엣지 2.1.1을 사용하고 있습니다.
감사하지만 그것은 작동하지 않습니다. 이 경우 버튼 클릭 후 getTimbratureDataList가 호출되지 않습니다. – maxqua72
문제를 해결하기 위해 알아 낸 유일한 방법은 명령 단추가 완료되면 다른 아약스 요청을 트리거하는 것입니다 (더러운 해결책입니다) : oncomplete = "PrimeFaces.ajax.AjaxRequest ('/ econsob/faces/protected/disp_congedi_permessi_dettaglio .com ": {{{{{{{{{{{{{{{{{{{{{{{{ – maxqua72