Existe alguma forma de fazer com que um<h:panelGrid> seja exibido/escondido
conforme clicamos no <p:selectBooleanCheckbox> sem fazer submit da página e
sem usar o <%@taglib uri=“http://richfaces.org/a4j” prefix=“a4j”%> ?
todos ex que vi, fazem uso do : <a4j:support event=“onclick” ajaxSingle=“true” reRender=“meuForm” />
segue meu código:
termo.xhtml
<p:selectBooleanCheckboxid="cbAceitarTermo"value="#{termoHandler.aceitar}"itemLabel="Eu Aceito"label="CONCONDAR COM O TERMO:"/><h:panelGridid="pgAceitar"rendered="#{termoHandler.aceitar}">
...
</h:panelGrid>
tenta ai mas concerteza ira funcionar ja utilizei isso e funciona beleza
ate mais
R
RobsonFagundes
então CristianPalmaSola10
estou utilizando <p:selectBooleanCheckbox>
através da taglib xmlns:p="http://primefaces.org/ui"
neste caso não esta definido na interface do componente o update="pgAceitar"
já tinha tentado antes…
tentei com o binding="" mas tmb não deu…
C
CristianPalmaSola10
dentro da tag do componente em questa
<p:ajaxevent="change"update="pgAceitar"/>
R
RobsonFagundes
nada… CristianPalmaSola10
não da erro, mas tmb não funfa
será que a lógica do managedBean ta certa…
C
CristianPalmaSola10
Eu quando usei isso nunca coloquei isso
so trocava o valor da varivel booleana e na view mandavar fazer o update no componente
aqui tem um exemplo do que ja utilizei o update
<divclass="well"style="margin-left: -20px;"><h:formstyleClass="form-horizontal"id="formFiltro"><fieldset><legend>ListadeMunicípios</legend><br/><br/><divclass="form-inline"style="margin-left: -20px;"><divclass="control-group"><h:outputLabelstyleClass="control-label"value="Filtrar por Estado"/><divclass="controls"><p:selectOneMenuvalue="#{municipioController.idEstado}"><c:selectItemsvalue="#{municipioController.listaEstado}"var="est"itemLabel="#{est.dsEstado}"itemValue="#{est.idEstado}"/><p:ajaxevent="change"listener="#{municipioController.buscarMunicipiosPorId}"update=":form :formFiltro @this"/></p:selectOneMenu></div></div></div><br/></fieldset></h:form><h:formid="form"><fieldset><p:dataTablevar="munc"value="#{municipioController.listaMunicipio}"paginator="true"rows="10"paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink}{PageLinks}{NextPageLink}{LastPageLink}{RowsPerPageDropdown}"><p:columnfilterBy="#{munc.dsMunicipio}"filterMatchMode="contains"><c:facetname="header">Município</c:facet><h:outputLabelvalue="#{munc.dsMunicipio}"/></p:column><p:columnfilterBy="#{munc.cdLegal}"filterMatchMode="contains"><c:facetname="header">CódigoLegal</c:facet><h:outputLabelvalue="#{munc.cdLegal}"/></p:column><p:column><p:commandLinkvalue="Editar"oncomplete="panelEditar.show();"process="@this"update=":formCadMunicipio:panelEditar"><c:setPropertyActionListenervalue="#{munc}"target="#{municipioController.municipio}"/></p:commandLink></p:column><p:column><p:commandLinkvalue="Excluir"oncomplete="panelExcluir.show();"process="@this"update=":form"><c:setPropertyActionListenervalue="#{munc}"target="#{municipioController.municipio}"/></p:commandLink></p:column></p:dataTable><ahref="http://localhost:8084/projetoEstagio/faces/paginas/cadastros/cadMunicipio.xhtml">NovoMunicípio</a><p:dialogmodal="true"header="Excluir"showEffect="fade"hideEffect="explode"widgetVar="panelExcluir"><divclass="form-inline"><h:outputLabelvalue="Quer excluir o município "/><p:spacerwidth="2"/><h:outputLabelvalue="#{municipioController.municipio.dsMunicipio}"/><h:outputLabelvalue=" ?"/></div><divclass="form-actions"><p:commandButtonstyleClass="btn btn-danger"value="Sim"update=":form :formCadMunicipio"actionListener="#{municipioController.excluir}"/><p:commandButtonstyleClass="btn btn-primary"value="Não"onclick="panelExcluir.hide();"style="margin-left: 20px;"/></div></p:dialog></fieldset></h:form></div>
C
cleciusjm
Voce precisa dar o update no componente pai ao componente que possui o atributo redered condicional, caso esse componente possua muitos filhos, para naõ precisa dar update em todos, englobe o componente que voce quer atualizar em um p:panelGroup ou algo do tipo.
R
RobsonFagundes
cleciusjm:
Voce precisa dar o update no componente pai ao componente que possui o atributo redered condicional, caso esse componente possua muitos filhos, para naõ precisa dar update em todos, englobe o componente que voce quer atualizar em um p:panelGroup ou algo do tipo.
Voce precisa dar o update no componente pai ao componente que possui o atributo redered condicional, caso esse componente possua muitos filhos, para naõ precisa dar update em todos, englobe o componente que voce quer atualizar em um p:panelGroup ou algo do tipo.
Sim, mas pelo que observei o atributo rendered que é condicional pertence ao panel, porém você deve dar update no pai do componente que possui o atributo condicional, e não diretamente nele, logo quando ele não for mostrado você vai ter só o pai dele renderizado de forma vazia na tela, então ao atualizar, atualiza-se o pai, e muda o atributo condicional, que ao re-rendenizar o pai o filho será atualizado também.