Boa tarde a todos! Estou com problemas ao utilizar um checkbox onde quando estiver false não renderizar mais quando ele estiver marcado,
um ajax no change atualiza o componente
Minha view
<h:outputLabelrendered="#{!reservaHorarioController.hiddenRepetir}"value="Atualizar todos horarios da mesma solicitação:"/><h:selectBooleanCheckboxrendered="#{!reservaHorarioController.hiddenRepetir}"id="updateAll"value="#{reservaHorarioController.updateAll}"/><br/><h:outputLabelrendered="#{reservaHorarioController.hiddenRepetir}"for="repetir"value="Repetir:"/><p:selectBooleanCheckboxrendered="#{reservaHorarioController.hiddenRepetir}"id="repetir"value="#{reservaHorarioController.repetir}"><p:ajaxevent="change"update="pgPanel"listener="#{reservaHorarioController.showRepetir}"/></p:selectBooleanCheckbox><p:panelGridid="pgPanel"rendered="#{reservaHorarioController.hiddenRepetir}"><h:outputLabelrendered="#{!reservaHorarioController.hiddenRepetir}"value="Quantidade de dias?"/><p:spinnerrendered="#{!reservaHorarioController.hiddenRepetir}"min="#{reservaHorarioController.timeMin}"max="#{reservaHorarioController.timeMax}"id="spinnerBasic"value="#{reservaHorarioController.qtdDias}"/></p:panelGrid>
Em um dado momento o componente pgPanel pode não está renderizado, então o ideal é q você crie um panel (panelGroup é muito bom nesses casos) acima dele, e dê update nele.
Exemplo:
<h:outputLabelrendered="#{!reservaHorarioController.hiddenRepetir}"value="Atualizar todos horarios da mesma solicitação:"/><h:selectBooleanCheckboxrendered="#{!reservaHorarioController.hiddenRepetir}"id="updateAll"value="#{reservaHorarioController.updateAll}"/><br/><h:outputLabelrendered="#{reservaHorarioController.hiddenRepetir}"for="repetir"value="Repetir:"/><p:selectBooleanCheckboxrendered="#{reservaHorarioController.hiddenRepetir}"id="repetir"value="#{reservaHorarioController.repetir}"><p:ajaxevent="change"update="pgPanel"listener="#{reservaHorarioController.showRepetir}"/></p:selectBooleanCheckbox><h:panelGroupid="pgPanel"><p:panelGridrendered="#{reservaHorarioController.hiddenRepetir}"><h:outputLabelrendered="#{!reservaHorarioController.hiddenRepetir}"value="Quantidade de dias?"/><p:spinnerrendered="#{!reservaHorarioController.hiddenRepetir}"min="#{reservaHorarioController.timeMin}"max="#{reservaHorarioController.timeMax}"id="spinnerBasic"value="#{reservaHorarioController.qtdDias}"/></p:panelGrid><h:panelGroup>
L
leslie-UFT
ayslanms:
Em um dado momento o componente pgPanel pode não está renderizado, então o ideal é q você crie um panel (panelGroup é muito bom nesses casos) acima dele, e dê update nele.
Exemplo:
<h:outputLabelrendered="#{!reservaHorarioController.hiddenRepetir}"value="Atualizar todos horarios da mesma solicitação:"/><h:selectBooleanCheckboxrendered="#{!reservaHorarioController.hiddenRepetir}"id="updateAll"value="#{reservaHorarioController.updateAll}"/><br/><h:outputLabelrendered="#{reservaHorarioController.hiddenRepetir}"for="repetir"value="Repetir:"/><p:selectBooleanCheckboxrendered="#{reservaHorarioController.hiddenRepetir}"id="repetir"value="#{reservaHorarioController.repetir}"><p:ajaxevent="change"update="pgPanel"listener="#{reservaHorarioController.showRepetir}"/></p:selectBooleanCheckbox><h:panelGroupid="pgPanel"><p:panelGridrendered="#{reservaHorarioController.hiddenRepetir}"><h:outputLabelrendered="#{!reservaHorarioController.hiddenRepetir}"value="Quantidade de dias?"/><p:spinnerrendered="#{!reservaHorarioController.hiddenRepetir}"min="#{reservaHorarioController.timeMin}"max="#{reservaHorarioController.timeMax}"id="spinnerBasic"value="#{reservaHorarioController.qtdDias}"/></p:panelGrid><h:panelGroup>
Fiz conforme o seu conselho mais ainda não deu certo :(
Pode ocorrer alguma coisa por isso está dentro de um popup???
A
ayslanms
Tenta remove o rendered do checkbox.
P
Polverini
qual o escopo do seu bean ?? se estiver em request ou mesmo sem tenta usar com o viewScoped
L
leslie-UFT
Ele está como Session.
L
leslie-UFT
Removi só pela dica, mas não é isso não
P
peerless
cadê teu botão de ação? O botão tem que fazer uso da propriedade “update” sobre o objeto que se deseja sofrer a atualização. Ex: <p:commandButton … update=“idPainel” … />
Caso não queira que isso seja feito via ajax, use o h:commandButton.
L
leslie-UFT
peerless:
cadê teu botão de ação? O botão tem que fazer uso da propriedade “update” sobre o objeto que se deseja sofrer a atualização. Ex: <p:commandButton … update=“idPainel” … />
Caso não queira que isso seja feito via ajax, use o h:commandButton.
Boa tarde! Acho que não entendeu meu problema, mas vou explica-lo novamente:
Tenho um
<p:selectBooleanCheckbox rendered="#{reservaHorarioController.hiddenRepetir}" id="repetir" value="#{reservaHorarioController.repetir}" >
<p:ajax event="change" update="pgPanel" listener="#{reservaHorarioController.showRepetir}"/>
</p:selectBooleanCheckbox>
Ao checar (E disparado o ajax pelo evento onchange) o mesmo é para renderizar o seguinte componente :
<h:panelGroup id="pgPanel" >
<p:panelGrid rendered="#{reservaHorarioController.hiddenRepetir}">
<h:outputLabel rendered="#{!reservaHorarioController.hiddenRepetir}" value="Quantidade de dias?" />
<p:spinner rendered="#{!reservaHorarioController.hiddenRepetir}" min="#{reservaHorarioController.timeMin}" max="#{reservaHorarioController.timeMax}" id="spinnerBasic" value="#{reservaHorarioController.qtdDias}"/>
</p:panelGrid>
<h:panelGroup>
Só que ele não renderiza, ja usei o debug e o valor está sendo mudado corretamente ao checar ou não, pelo firebug vejo o ajax executando mais não sei porque no form não acontece simplesmente nada.