[Resolvido] JSF - Desabilitar campo quando selecionar p:selectOneRadio

4 respostas
G

Boa noite galera, como faço pra desabilitar um campo no meu xhtml quando marcar um radio button?

4 Respostas

H

JSF Exemplos Simples com Ajax, aqui mostra como você pode fazer.

G

consegui da seguinte maneira:

<p:selectOneRadio value="#{consultaMB.tipoRelatorio}" layout="pageDirection" style="font-size: 24px;">
											
    <f:selectItem itemLabel="Valor total a receber" itemValue="1" />
									
	<f:selectItem itemLabel="Desempenho mensal" itemValue="2" />
									
	<f:selectItem itemLabel="Desempenho integral" itemValue="3" />
									
	<f:ajax render="consulta" ></f:ajax>
									
</p:selectOneRadio>

meus campos

<h:panelGrid columns="3" width="65%" border="0" id="consulta" > <!-- nome do ajax no radiobutton -->
			
								<p:calendar id="filtroDataInicial" size="10" title="Data inicial" disabled="#{consultaMB.tipoRelatorio != 1}" />
								<h:outputText value=" à " />
								<p:calendar id="filtroDataFinal" style="background: #FFFFE0;" size="10" title="Data final" disabled="#{consultaMB.tipoRelatorio != 1}" />  
					
								<p:inputMask mask="99/9999" size="7" disabled="#{consultaMB.tipoRelatorio != 2}" />
						
								<h:commandButton image="../../resources/images/view.png" title="Pesquisar" action="#{userMB.logOut}" style="text-align: right;"/>
								
							</h:panelGrid>

meu bean

@SessionScoped
@ManagedBean
public class ConsultaMB implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private String tipoRelatorio;

	public String getTipoRelatorio() {
		return tipoRelatorio;
	}

	public void setTipoRelatorio(String tipoRelatorio) {
		this.tipoRelatorio = tipoRelatorio;
	}
	
	
}

vlw Hebert…

H

Com todo respeito, posso te dar uma dica?

Você pode colocar o método no MB e colocar algo do tipo public boolean isRelatorioCarros(){ return tipoRelatorio == 1; }E na página você chamaria o rendered por rendered={#meuMB.relatorioCarros}.

É boa prática colocar o código de ifs/elses no MB e não na página.

G

Obrigado pela dica cara… to começando jsf, e ja gostaria de aprender da maneira correta…
vlw mesmo, abraço

Criado 2 de dezembro de 2012
Ultima resposta 2 de dez. de 2012
Respostas 4
Participantes 2