Eu estou com o seguinte problema...
Eu tenho dois selectonechoices que esão dependentes, ou seja, assim que eu escolho um valor no primeiro selectonechoice, o segundo deve mostrar valores relacionado ao valor que eu escolhi no primeiro:
<af:selectOneChoice label="Razão Social"
binding="#{backing_Inscricao.razao_social}"
autoSubmit="true" id="razao" partialTriggers="plano">
<f:selectItems value="#{backing_Inscricao.tipos}"/>
</af:selectOneChoice>
<af:selectOneChoice label="Tipo de Plano"
binding="#{backing_Inscricao.plano}"
autoSubmit="true" partialTriggers="razao" id="plano">
<f:selectItems value="#{backing_Inscricao.planos}"/>
</af:selectOneChoice>
public SelectItem[] getPlanos() {
if(getRazao_social().getValue()!=null){
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("ExecuteWithParams4"); operationBinding.getParamsMap().put("wcodigo_empresa",Integer.parseInt(getRazao_social().getValue().toString()) );
Object result = operationBinding.execute();
if (!operationBinding.getErrors().isEmpty()) {
return null;
}
}
FacesContext fctx = FacesContext.getCurrentInstance();
ValueBinding vbinding = fctx.getApplication().createValueBinding("#{bindings.Assoplanos_usuarioView1Iterator}");
DCIteratorBinding locationsIterBinding = (DCIteratorBinding)vbinding.getValue(fctx);
locationsIterBinding.executeQuery();
locationsIterBinding.setRangeSize(-1);
Row[] locRowsArray = locationsIterBinding.getAllRowsInRange();
planos = new SelectItem[locRowsArray.length];
for (int indx = 0; indx < locRowsArray.length; indx++) {
SelectItem addItem = new SelectItem();
addItem.setLabel((String)locRowsArray[indx].getAttribute("Descricao"));
addItem.setValue(locRowsArray[indx].getAttribute("Codigo"));
planos[indx] = addItem;
}
return planos;
}
public SelectItem[] getTipos() {
FacesContext fctx = FacesContext.getCurrentInstance();
ValueBinding vbinding = fctx.getApplication().createValueBinding("#{bindings.Empresas_acessoView1Iterator}");
DCIteratorBinding locationsIterBinding = DCIteratorBinding)vbinding.getValue(fctx);
locationsIterBinding.executeQuery();
locationsIterBinding.setRangeSize(-1);
Row[] locRowsArray = locationsIterBinding.getAllRowsInRange();
tipos = new SelectItem[locRowsArray.length];
for (int indx = 0; indx < locRowsArray.length; indx++) {
SelectItem addItem = new SelectItem();
addItem.setLabel((String)locRowsArray[indx].getAttribute("Razsoc"));
addItem.setValue(locRowsArray[indx].getAttribute("Codigo"));
tipos[indx] = addItem;
}
return tipos;
}
Tentei colocar um
getPlano().resetvalue()
.... pra limpar o segundo ... e estava funcionando bem... mas daí quando eu clico em um botão pra poder enviar os dados.. ele está resetando também e mandando o valor em branco!!!....