0

問題があります。1 つのフォームと、内部に別のフォームを含むダイアログがあります。2 番目のフォームには、ラジオボタンを選択したデータテーブルがあります。初めてダイアログを開くと、選択がうまく表示されます。ダイアログを閉じます。しかし、別の要素を試してみると、データテーブルの選択が更新されません。

私が使用する構成は次のとおりです。

モハラ2.2.4
プライムフェイス 4.0

しかし、Primefaces 3.5 バージョンを使用すると動作します。

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>

2 番目のファイル

<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>

私はあなたの助けに感謝します。

4

1 に答える 1