2013-11-13 4 views
0

У меня проблема. У меня есть одна форма и диалог с другой формой внутри. Вторая форма имеет формат данных с выбором радиобутов. Когда я открываю диалог в первый раз, выбор отображается в порядке. Я закрываю диалог. Но когда я пытаюсь использовать другой элемент, выбор в datatable не обновляется.datatable selection не обновляется при открытии диалога

Конфигурация, я использую:

Mojarra 2.2.4
Primefaces 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> 

Второй файл

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

Я ценю вашу помощь.

ответ

0

У меня была проблема, подобная этому. У меня было диалоговое окно, которое открывалось с информацией, основанной на предварительно выбранной строке DataTable, но содержимое этого диалога не обновлялось после первого открытия. я решить мою проблему, добавив атрибут "[email protected]" к моему commandLink и в вашем случае я считаю, что атрибут update должен быть update=":dlgHorarioCurso"

+0

Привет Родольфо, спасибо за ваш ответ. Я испытал ** process = @ form ** без везения. Я добавил ** closeOnEscape = "true" ** в теге диалога, и, к моему удивлению, он работает для этого случая, но ** commandButton **, который закрывает диалог, делает что-то неправильно. – viczap

Смежные вопросы