A4J reRender não funciona [RESOLVIDO]

8 respostas
Norivan

Rapazes, estou com um problema muito estranho, em um formulário tenho um select de contratos que é para ser mostrado somente quando o tipo de solicitantee for um cliente então coloquei um reRender verificando o valor do tipo do solicitante, se for 'C' é pra exibr

rendered="#{registroOcorrenciaController.entity.tipoSolicitante == 'C'}"
. Mas o select de contratos não aparece. fiz o seguinte:

<h:selectOneMenu
				value="#{registroOcorrenciaController.entity.tipoSolicitante}"
				label="#{i18n['registroOcorrenciaForm.tipoSolicitante']}"
				id="tipoSolicitante">
				<f:selectItem itemLabel="#{i18n['globalMessage.select']}"
					itemValue="" />
				<f:selectItem itemLabel="#{i18n['tipoOcorrenciaForm.tipo.a']}"
					itemValue="C" />

				<f:selectItem itemLabel="#{i18n['tipoOcorrenciaForm.tipo.b']}"
					itemValue="F" />
				
				<a4j:support event="onchange" ajaxsingle="true"
					reRender="selectTipoOcorrencia, selectContrato, teste">
				</a4j:support>
			</h:selectOneMenu>


	<h:selectOneMenu id="selectContrato"
				value="#{beneficiarioController.idContrato}"
				label="#{i18n['beneficiarioForm.contrato']}"
				rendered="#{registroOcorrenciaController.entity.tipoSolicitante == 'C'}"
				required="#{param['runningAction'] eq 'saveOrUpdate' and registroOcorrenciaController.entity.tipoSolicitante == 'C'}">
				<f:selectItems value="#{beneficiarioController.selectListaContrato}" />
			</h:selectOneMenu>
			
			
<h:outputText id="teste" value="#{registroOcorrenciaController.entity.tipoSolicitante}" />

Nesse campo teste o valor 'C' aparece normal mas o select não fica vissivel nem a pau, onde está o erro?

8 Respostas

A

ja tentou trocar == por eq?

Norivan

Pior que já, tava eq antes.

A

e seu a4j:support sem ajaxsingle=“true” ?

Norivan

Tava com, tentei sem também e não roluo.

<a4j:support event="onchange" ajaxsingle="true"
				reRender="selectTipoOcorrencia, selectContrato">
			</a4j:support>
A

ultima opnião… rsrs

tentar mudar onchange por onselectionchange

Flavio_Almeida

Amigão, sempre que você tiver um componente que faça uso da propriedade rendered dinamicamente, você precisa envolvê-lo dentro de um contêiner, seja lá qual for, e dar reRender sobre este contêneir. Você pode usar um PanelGrid.

Abraço

R

Para entender mais sobre o que o Flavio falou:
http://www.rponte.com.br/2010/12/01/problema-do-rendered-dinamico-com-jsf/

Norivan

Saquei Flávio valeu!

Criado 22 de setembro de 2011
Ultima resposta 22 de set. de 2011
Respostas 8
Participantes 4