我正在使用Primefaces 4中的对话框架,我想用dialogReturn事件调用一个方法,我的代码是:
我把dialogReturn放在
的代码<h:panelGrid id="idPgConfirmar"
columns="3"
width="100%"
border="0"
columnClasses="colC1-T,col-confirmada">
<h:outputText value="   " />
<p:commandButton id="idBtResumenOS"
value="Resumen y Confirmacion Orden de Salida"
style="width: 360px;color: blue;font-size:"
actionListener="#{ordenSalidaBean.verResumenConfirmarOrdenSalida}"
update="idPgConfirmar">
<p:ajax event="dialogReturn"
listener="#{ordenSalidaBean.retornoConfirmacionOrden}"
update=":idFormOrdenSalida"/>
</p:commandButton>
<p:message for="idBtResumenOS" display="text"/>
</h:panelGrid>
对话框:resumen_orden_salida.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title style="font-size: 12px;">Resumen Orden de Salida</title>
<f:facet name="last">
<h:outputStylesheet name="css/default2.css"/>
</f:facet>
</h:head>
<h:body>
<h:form id="idFormResumenOS">
<p:dataTable id="idDataTableItemResumenOS"
var="itemResumen"
value="#{ordenSalidaBean.osu.lstItemOS}"
paginator="true" rows="5"
rowIndexVar="row"
paginatorPosition="bottom"
rowsPerPageTemplate="5,10"
emptyMessage="Lista de Item Resumen">
<p:column headerText="Nro"
width="22px;"
style="text-align:center;">
<h:outputText value="#{row+1}" />
</p:column>
<p:column headerText="Descripcion Item"
style="text-align:left;">
<h:outputText value="#{itemResumen.strItemArticulo}" />
</p:column>
<p:column headerText="U. Med."
style="text-align:center;"
width="50px;" >
<h:outputText value="#{itemResumen.strUnidad}"/>
</p:column>
<p:column headerText="Cant."
style="text-align:center;"
width="30px;">
<h:outputText value="#{itemResumen.strCantidad}"/>
</p:column>
<p:column headerText=""
style="text-align:center;"
width="20px;">
<p:graphicImage id="idImagen"
name="images/#{itemResumen.strImagen}.gif"/>
<p:tooltip for="idImagen"
value="#{itemResumen.strTooltip}" />
</p:column>
</p:dataTable>
<p:message for="idDataTableItemResumenOS" />
<h:panelGrid columns="2"
width="100%"
columnClasses="colB1,colB2">
<p:commandButton id="idBtnGuardar"
icon="ui-icon-check"
value="Guardar y Confirmar"
style="width: 180px;font-size: 12px;"
actionListener="#{ordenSalidaBean.confirmarOrdenSalida}"
disabled="#{!ordenSalidaBean.osu.confirmaOrden}"/>
<p:commandButton id="idBtnCancelar"
icon="ui-icon-close"
value="Cancelar"
style="width: 180px;font-size: 12px;"
actionListener="#{ordenSalidaBean.cancelarConfirmacionOrdenSalida}"/>
</h:panelGrid>
</h:form>
</h:body>
</html>
方法
public void retornoConfirmacionOrden(){
FacesContext context = FacesContext.getCurrentInstance();
if(osVista.getConfirmado()) {
context.addMessage("keyOrdenSalida", new FacesMessage(FacesMessage.SEVERITY_INFO,
"Mensaje","Registro "+osVista.getStrNroSerie()+"-"+osVista.getStrNumero()+" guardada y confirmada"));
}
else {
context.addMessage("keyOrdenSalida", new FacesMessage(FacesMessage.SEVERITY_WARN,
"Mensaje","Registro "+osVista.getStrNroSerie()+"-"+osVista.getStrNumero()+" guardada, sin confirmar"));
}
}
对话框方法
public void confirmarOrdenSalida(ActionEvent event) {
OrdenSDataUtil ordenData = ordenSalidaBO.confirmarOrdenSalida(osVista,osu.getLstItemOS(),osu.getLstItemEliminar());
osu.setLstItemOS(ordenData.getLstItemOSUtil());
osVista = ordenData.getOrdenSalidaDTO();
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage("keyOrdenSalida", new FacesMessage(FacesMessage.SEVERITY_INFO,
"Mensaje","Registro "+osVista.getStrNroSerie()+"-"+osVista.getStrNumero()+" guardada y confirmada"));
RequestContext.getCurrentInstance().closeDialog("/pages/logistica/movimientos/orden_salida/resumen_orden_salida");
}
但是不调用retornoConfirmacionOrden方法。
感谢。