Pessoal,
tenho uma página que gera um result list de acordo com um filtro escolhido pelo usuário.
Na result list, existe um campo editável, nº de horas (vem com um valor mas posso editá-lo) e um campo texto, valor, que é calculado de acordo com as horas. Se o usuário modifica as horas, a result list é renderizada novamente para que o valor seja recalculado.
Fiz um ajax, que infelizmente não está funcionando. Aqui segue:
<rich:column>
<f:facet name="header">
<h:outputText value="Horas"/>
<ui:param name="entityList" value="#{pmnMedicaoGrupoProfissionalList.medicoesProfissionais}"/>
<ui:param name="propertyPath" value="resultList.nuHoras"/>
</f:facet>
<h:inputText value="#{_resultList.nuHoras}" size="5" maxlength="5">
<a4j:support
id="nuHorasPro"
action="#{pmnMedicaoGrupoProfissionalList.calculeValorTotalAction()}"
reRender="resultList"
event="onblur"/>
</h:inputText>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Valor"/>
<ui:param name="entityList" value="#{pmnMedicaoGrupoProfissionalList.medicoesProfissionais}"/>
<ui:param name="propertyPath" value="resultList.vlMedicao"/>
</f:facet>
<h:outputText value="#{_resultList.vlMedicao eq null ? 0 : _resultList.vlMedicao}" id="valorTotal">
<f:convertNumber minFractionDigits="2" maxFractionDigits="2"></f:convertNumber>
</h:outputText>
</rich:column>
Também passo o método:
@Begin(join=true)
public String calculeValorTotalAction() {
for (PmnMedicaoProfissional item : medicoesProfissionais) {
if (item.getNuHoras() == null) item.setNuHoras(0);
if (item.getNuHoras() > 0) {
calculeValorTotal(item);
} else {
item.setVlMedicao(new BigDecimal(0));
}
}
return "calculated";
}
O que tenho é muito parecido com um post antigo: http://www.guj.com.br/java/206718-resolvido-duvida-em-como-usar-ajax-com-jboss-seam.
Mas existe uma diferença básica: Não posso mudar o escopo para page. Ao entrar na página, são passadas informações como parâmetro, que a partir dessas faço meu filtro de pesquisa.
Ideias?
Grato!