Problemas na renderização

Bom dia galera, estou com uma bruxaria no meu código aqui, ao clicar em SIM do OneRadio que tem os valores SIM e NAO, teria que mostrar o campo Percentual Consorcio, fiz um ajax para renderizar o campo porem ele so consegue renderizar se eu colcoar o id do form mais se eu apontar o componente direto ele nao consegue rendereziar, nao mostrar meu componte que representa o campo Percentual Consorcio, alguem pode me da um help por favor ? ou tenho que chamar um padre para tirar essa bruxaria do meu codigo…heehehe


<ui:define name="conteudo">
		<h:form id="frmContrato" prependId="false">
			<p:fieldset id="identificacao" legend="#{app['label.identificacao']}" styleClass="fieldset">
				<h:panelGrid columns="1" width="100%" cellpadding="5">
					<h:panelGroup>
							<div style="float: left;margin-right:  20px">
								<h:outputLabel value="#{app['label.consorcio']} *" for="consorcio" /><br/>
						        <h:selectOneRadio required="true" id="consorcio" value="#{contratoMB.contrato.consorcio}" requiredMessage="#{app['campoObrigatorio.consorcio']}">  
						            <f:selectItem itemLabel="#{app['label.sim']}" itemValue="S" />
						            <f:selectItem itemLabel="#{app['label.nao']}" itemValue="N" />
						            <p:ajax update=":frmContrato:percent" listener="#{contratoMB.comandoHabilitarCampoPercentualConsorcio}" /> 
						        </h:selectOneRadio> 
						    </div>
						
							<h:panelGroup id="percent" rendered="#{contratoMB.habilitarCampoPercentualConsorcio}" >
							   <div style="float: left; margin-right:  20px">   
							   		<h:outputLabel  value="#{app['label.porcentualConsorcio']} *"  for="valorPercentual"/><br/>
									<pe:inputNumber required="#{contratoMB.habilitarCampoPercentualConsorcio}" id="valorPercentual" maxValue="9999999999999999.99" minValue="0.00" value="#{contratoMB.contrato.percentualConsorcio}" symbol="%" decimalSeparator="," decimalPlaces="2" thousandSeparator="." label="#{app['label.porcentualConsorcio']}" requiredMessage="testar percent" />
							   </div>
							</h:panelGroup>
						</h:panelGroup>
                                             </h:panelGrid>

	</p:fieldset >
   </h:form>	
</ui:define>

	public String comandoHabilitarCampoPercentualConsorcio(){
		if(getContrato().getConsorcio().equals("S")){
			this.habilitarCampoPercentualConsorcio = true;
		}else{
			this.habilitarCampoPercentualConsorcio = false;
		}
		return"";
	}

Da forma que esta não estou conseguindo renderizar o campo :

<h:panelGroup id="percent" rendered="#{contratoMB.habilitarCampoPercentualConsorcio}" >
							   <div style="float: left; margin-right:  20px">   
							   		<h:outputLabel  value="#{app['label.porcentualConsorcio']} *"  for="valorPercentual"/><br/>
									<pe:inputNumber required="#{contratoMB.habilitarCampoPercentualConsorcio}" id="valorPercentual" maxValue="9999999999999999.99" minValue="0.00" value="#{contratoMB.contrato.percentualConsorcio}" symbol="%" decimalSeparator="," decimalPlaces="2" thousandSeparator="." label="#{app['label.porcentualConsorcio']}" requiredMessage="testar percent" />
							   </div>
							</h:panelGroup>

mais se eu dou um updtade no form “frmContrato” ele consegue renderizar… mais da forma que eu quero que e da update somente no campo nao rola ele nao reconhece…estranho

What`s the problem?

Editei o post

que dialog é esse que você fecha? não vi ele sendo aberto no seu código.

e por favor sera muito mais específico.

Ex:

Quando eu clico no commandButton X eu disparo a ação Y, que é executada normalmente, e na hora de renderizar a resposta o componente Z não é renderizado. Eu coloquei o valor ABC no update.

entendeu?

Atualizado

Ah sim, agora eu entendi o seu problema.

Como você quer renderizar um componente que antes não estava visível, então tem que dar update em um ancestral dele mesmo :slight_smile:

NOSSAAAA BIXXOOO QUE VACILOOOO É MESMO COMO EU NAO TESTEI ISSO>. verdade poderia mandar renderizar o <h:panelGroup> pai deles, valw mesmo Rodrigo Sasaki, pois eh eu deixei ele invisivel mesmo e ao invés de mandar rendizar o FORM ou o <h:panelGroup> que estava o componente que representava o campo Percentual Consorcio, renderizei o pai deles…

OBRIGADO!!!

RESOLVIDO!!!

<h:panelGroup id="consorcioGeral">
							<div style="float: left;margin-right:  20px">
								<h:outputLabel value="#{app['label.consorcio']} *" for="consorcio" /><br/>
						        <h:selectOneRadio required="true" id="consorcio" value="#{contratoMB.contrato.consorcio}" requiredMessage="#{app['campoObrigatorio.consorcio']}">  
						            <f:selectItem itemLabel="#{app['label.sim']}" itemValue="S" />
						            <f:selectItem itemLabel="#{app['label.nao']}" itemValue="N" />
						            <p:ajax update=":frmContrato:consorcioGeral" listener="#{contratoMB.comandoHabilitarCampoPercentualConsorcio}" /> 
						        </h:selectOneRadio> 
						    </div>
						
							<h:panelGroup id="percent" rendered="#{contratoMB.habilitarCampoPercentualConsorcio}" >
							   <div style="float: left; margin-right:  20px">   
							   		<h:outputLabel  value="#{app['label.porcentualConsorcio']} *"  for="valorPercentual"/><br/>
									<pe:inputNumber required="#{contratoMB.habilitarCampoPercentualConsorcio}" id="valorPercentual" maxValue="9999999999999999.99" minValue="0.00" value="#{contratoMB.contrato.percentualConsorcio}" symbol="%" decimalSeparator="," decimalPlaces="2" thousandSeparator="." label="#{app['label.porcentualConsorcio']}" requiredMessage="testar percent" />
							   </div>
							</h:panelGroup>
						</h:panelGroup>