Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 打开对话框时,数据表选择不会更新_Jsf_Primefaces_Datatable_Dialog_Selection - Fatal编程技术网

Jsf 打开对话框时,数据表选择不会更新

Jsf 打开对话框时,数据表选择不会更新,jsf,primefaces,datatable,dialog,selection,Jsf,Primefaces,Datatable,Dialog,Selection,我有个问题。我有一个表单和一个对话框,里面有另一个表单。第二个表单有一个带有单选按钮选择的数据表。当我第一次打开对话框时,选择显示良好。我关闭对话框。但是当我尝试使用另一个元素时,datatable上的选择不会被更新 <h:form id="formPlanificarCursos"> <p:outputPanel styleClass="pnlDeclaracionMessages"> <p:

我有个问题。我有一个表单和一个对话框,里面有另一个表单。第二个表单有一个带有单选按钮选择的数据表。当我第一次打开对话框时,选择显示良好。我关闭对话框。但是当我尝试使用另一个元素时,datatable上的选择不会被更新

        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>
我使用的配置是:

        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>
莫哈拉2.2.4
PrimeFaces4.0

        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>
但是,如果我使用Primefaces 3.5版本,它可以工作

        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>
我附加xhtml文件

        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>
第一个文件

        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>

第二个文件

        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>
<ui:composition 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" xmlns:o="http://omnifaces.org/ui"
xmlns:components="http://java.sun.com/jsf/composite/components">
<h:form id="frmHorarioCurso">
    <p:panel styleClass="pnlHorarioCurso non-borders">
        <p:messages id="messagesfrmHorarioCurso" />

        <components:titleSeparator title="Aula" />

        <p:outputPanel id="pnlAulas" styleClass="pnlAulas" style="border-width:0px;">
            <p:dataTable emptyMessage="No hay aulas para seleccionar." var="aula" id="grdAulas" styleClass="grdAulas"
                value="#{detallePlanCursoBean.aulaModel}" selection="#{detallePlanCursoBean.detallePlanCursoDTO.aula}" rows="3" paginator="true"
                paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
                currentPageReportTemplate="({currentPage} de {totalPages})" paginatorPosition="bottom" paginatorAlwaysVisible="false" widgetVar="grdAulas">
                <p:column selectionMode="single" style="width:15px;" />
                <p:column headerText="Nombre">
                    <h:outputText value="#{aula.nombre}" />
                </p:column>
                <p:column headerText="Ubicación">
                    <h:outputText value="#{aula.locacion.nombre}" />
                </p:column>
                <p:column headerText="Capacidad" style="text-align:center;width:100px;">
                    <h:outputText value="#{aula.capacidad}" />
                </p:column>
                <p:column headerText="Accesibilidad" style="width:10%; text-align:center;">
                    <p:selectBooleanCheckbox value="#{aula.accesible}" disabled="true" />
                </p:column>
            </p:dataTable>
        </p:outputPanel>

        <f:facet name="footer">
            <div class="div-botonera">
                <p:commandButton value="Aceptar" action="#{detallePlanCursoBean.agregarHorarioCurso}" update="@(.pnlHorarioCurso)"
                    oncomplete="if(!args.validationFailed) HorarioCurso.handleComplete(xhr, status, args);" />

                <p:commandButton value="Cancelar" oncomplete="scheduleCurso.update(); dlgHorarioCurso.hide();" update="@(.pnlHorarioCurso)" immediate="true"
                    action="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            </div>
        </f:facet>

    </p:panel>
</h:form>

        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>

感谢您的帮助。

我遇到了类似的问题。我打开了一个对话框,其中包含基于预先选择的dataTable行的信息,但该对话框的内容在第一次打开后没有更新。
        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>

我通过将属性
“process=@form”
添加到我的commandLink解决了我的问题,在您的情况下,我认为
update
属性应该是
update=“:dlgHorarioCurso”

你好,鲁道夫,谢谢您的回答。我在没有lucky的情况下测试了进程=@form。我在对话框标记上添加了closeOnEscape=“true”,让我惊讶的是,它在这种情况下有效,但是关闭对话框的commandButton做了一些错误的事情。
        <h:form id="formPlanificarCursos">
            <p:outputPanel styleClass="pnlDeclaracionMessages">
                <p:messages showSummary="true" />
            </p:outputPanel>

            <p:panel id="pnlPlanHorarioCurso" styleClass="pnlPlanHorarioCurso non-borders">
                <components:titleSeparator title="Horarios de Curso" />
                <!-- Toolbar -->
                <p:outputPanel layout="block" styleClass="toolbar">
                    <p:commandLink id="btnAgregar" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['planCurso.registrar.titulo']}'); dlgHorarioCurso.show();">
                        <h:graphicImage value="/resources/images/document_add.png" />
                    </p:commandLink>
                    <p:tooltip for="btnAgregar" value="Agregar Horario" />
                </p:outputPanel>
                <p:schedule id="scheduleCurso" minTime="6" value="#{detallePlanCursoBean.scheduleModel}" styleClass="scheduleCurso schedule-without-days"
                    allDaySlot="false" showHeader="false" view="agendaWeek" axisFormat="HH:mm" timeFormat="H:mm{ - H:mm}" aspectRatio="4" locale="es"
                    widgetVar="scheduleCurso">
                    <p:ajax event="eventSelect" listener="#{detallePlanCursoBean.onEventSelect}" update="@(.dlgHorarioCurso)"
                        oncomplete="jQuery('.dlgHorarioCurso .ui-dialog-title').text('#{plan_msgs['horarioCurso.modificar.titulo']}'); dlgHorarioCurso.show();" />
                </p:schedule>
                <f:facet name="footer">
                    <div class="div-botonera">
                        <p:commandButton id="btnAceptar" value="Aceptar" action="#{detallePlanCursoBean.registrarDetallePlanCurso}" />
                        <p:commandButton id="btnCancelar" value="Cancelar" action="#{detallePlanCursoBean.irConsultarPlanCurso}" immediate="true" />
                    </div>
                </f:facet>
            </p:panel>
        </h:form>
        <!-- Agregar Disponibilidad Horaria -->
        <p:dialog widgetVar="dlgHorarioCurso" styleClass="dlgHorarioCurso" modal="true" resizable="false" closable="false">
            <p:ajax event="close" listener="#{detallePlanCursoBean.cancelarHorarioCurso}" />
            <ui:include src="/planificacion/horarioCurso.xhtml" />
        </p:dialog>