Está ocorrendo o seguinte: quando o componente inpCliPed perde o foco, é atualizado a informação do componente outCliPed. Ok está como eu quero.
O problema é que ocorre um delay entre o momento que entre a perda de foco do inpCliPed e o momento em que o outCliPed é atualizado, coisa de 3 seg. Neste meio tempo o outCliPed fica exibindo a informação relativa ao valor anterior de inpCliPed.
Gostaria que isso não ocorre-se, então pensei em fazer com que no momento em que iniciei a modificação do campo inpCliPed (ou seja no evento onkeyup, por exemplo) o componente ficasse invisível ou em branco. Talvez com a propriedade rendered do outCliPed, mas queria fazer isso direto no cliente, não no servidor.
Mais prático mais rápido e não “sobrecarrega” o servidor!
V
valdair.mts
Tiago, a sua solução não resolve meu problema porque o valor que é atribuído ao outCliPed (um outputText) não é o valor do componente inpCliPed (um inputText).
O valor atribuído ao outputText é outro atributo do objeto que está vinculado ao inpCliPed, cuja valor é atualizado após a execução do converter que está ligado este inputText.
Sim, o delay decorrente desta operação é um problema, mas não é o que eu quero resolver (claro que isso seria bom, mas é mais complicado pois tem consulta a banco de dados e tals). O problema que eu quero resolver é o fato de que durante a execução do converter o oupputText fica com o valor anterior e o usuário tem a impressão de que ele não foi atualizado até que termine o processo.
O que eu gostaria então de fazer é não dar margem a está visão do usuário, ou seja, não quero manter o valor anterior no outputText durante o processo. Bastaria por exemplo que eu conseguisse ocultar o outputText assim que o usuário iniciar a modificação do valor do inputText (não pode ser ao receber foco, pois ele pode não alterar nada, logo não haverá processamento).
Não sei se consegui me fazer entender.
thiago.correa
Bom, se via JS não é possível e o delay não seria bom, coloque uma mensagem de “Atualizando” ao lado do campo a ser atualizado (ou até mesmo no lugar) para isso utilize os atributos onSubmit onComple da tag a4j:support! Não sana o delay do servidor, porém, indica ao usuário que algum processamento está sendo feito!
V
valdair.mts
Poderia me dar um exemplo de como fazer isso: alterar a propriedade value do meu outputText no onsubmit para “Atualizando” e no onComplete para “#{pedido.pedido.cliente.display}”?
Tipo, imagino que seria uma função javascript que eu poderia reutilizar para outros outputText. Mas não manjo de javascript.
Desta forma apesar de a informação no outputText ficar desatualizada até o final da operação o usuário terá uma informação de que esta aguarda atualização. Ficou legal.