Boa noite galera, como faço pra desabilitar um campo no meu xhtml quando marcar um radio button?
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…
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.
Obrigado pela dica cara… to começando jsf, e ja gostaria de aprender da maneira correta…
vlw mesmo, abraço