AJAX em um result list

2 respostas
L

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!

2 Respostas

V

Onde esta o componente com o id “resultList”? no reRender vc definiu que este componente deveria ser renderizado

L

Está no datatable.

<rich:dataTable id="resultList"
    	       	    var="_resultList"
        	    	value="#{pmnMedicaoGrupoProfissionalList.medicoesProfissionais}"
           			rendered="#{not empty pmnMedicaoGrupoProfissionalList.medicoesProfissionais}">
</rich:dataTable>
Criado 27 de junho de 2011
Ultima resposta 27 de jun. de 2011
Respostas 2
Participantes 2