Na pagina JSF de montagem do pedido, abro um popup para selecionar o fornecedor. Utilizando o exemplo do http://www.jsftutorials.net/interface/jsf-popup.html, eu consigo perfeitamente setar o objeto fornecedor ao pedido e fechar o popup. O problema é que para exibir os dados do fornecedor na tela de montagem de pedido eu tenho que recarregar a pagina e é onde o bixo esta pegando…
seleciona_fornecedor.jsp (pagina popup)
function updatePlace(fornecedor) {
form=document.forms[formId];
form[formId+":fornecedorID"].value=fornecedor;
winId.close();
/*ja coloquei varios tipos de *reload(); aqui mas nao deu certo. nao sei se realmente é aqui.
*tentei de outras maneiras, mas essa foi a unica que funcionou direito.
*porem, tenho colocar um link para recarregar a pagina para os dados aparecerem na tela.
*Alguem sabe o que posso fazer?
*/
}
[/code]
/*ja coloquei varios tipos de *reload(); aqui mas nao deu certo. nao sei se realmente é aqui.
*tentei de outras maneiras, mas essa foi a unica que funcionou direito.
*porem, tenho colocar um link para recarregar a pagina para os dados aparecerem na tela.
*Alguem sabe o que posso fazer?
*/
}[/code]
recarregar a tela toda ? você precisa fazer alguma requisição ao fornecedor ? se não, javascript resolve o seu problema, agora não entendo o que não funcionou após este trecho, qual código você colocou ?
você pode utilizar uma requisição assincrona para efetuar algum controle em algum DOM, por exemplo utilizando o DWR ou algum recurso no JSF que desconheço para realizar este tipo de operação.
thimor
recarregar a tela toda ? você precisa fazer alguma requisição ao fornecedor ? se não, javascript resolve o seu problema, agora não entendo o que não funcionou após este trecho, qual código você colocou ?
você pode utilizar uma requisição assincrona para efetuar algum controle em algum DOM, por exemplo utilizando o DWR ou algum recurso no JSF que desconheço para realizar este tipo de operação.
Ola, o que nao funcionou foi a atualizacao da pagina. usei this.reload();, window.reload(); e usei tambem window.location.href=“novo_pedido.jsp”, etc… mas nenhum recarregou a pagina.
grato,
Thiago Moreno
faelcavalcanti
se você jogar o valor deste fornecedor em um input hidden e depois submeter o formulario na sua proxima pagina, capturando pelo java via form(camada view/controler) e recarregando com estas informações resolveria o seu problema ?
agora veja que o ideal é recarregar apenas os elementos DOM contidos no seu formulários, que como mencionei acima, a partir de uma invocação remota via javascript a partir de frameworks que se beneficiam de toda a infra-estrutura para se fazer requisição assíncrona via ajax.
procure sobre DWR ou sajax que você vai ver que é mão na roda!
thimor
faelcavalcanti:
se você jogar o valor deste fornecedor em um input hidden e depois submeter o formulario na sua proxima pagina, capturando pelo java via form(camada view/controler) e recarregando com estas informações resolveria o seu problema ?
agora veja que o ideal é recarregar apenas os elementos DOM contidos no seu formulários, que como mencionei acima, a partir de uma invocação remota via javascript a partir de frameworks que se beneficiam de toda a infra-estrutura para se fazer requisição assíncrona via ajax.
procure sobre DWR ou sajax que você vai ver que é mão na roda!
Resolveria sim. Eu pensei e vi que esta eh a melhor saida. Por esse motivo agora estou procurando como fazer o submit a partir do popup e depois fecha-lo. tipo e eu colocar o <h:commandLink action="#{pedido.setFornecedor}" value="Adicionar" onclick="window.close();" />
ele nao vai submeter e fechar a janela. Pelo que andei lendo, tenho que por algo do tipo:
window.form["myform"].submit();
window.close();
so que nao sei como faco para o submit ir direto para action pedido.setFornecedor.
thimor
Ola nao sei se essa foi a melhor solução. Mas ficou assim…
Pagina novopedido.jsp
Tentei fazer alguma coisa com a4j mas o javascript para de funcionar. Talvez essa nao seja a solucao mais elegante, pois ele recarrega toda a pagina quando seleciona o fornecedor por causa do form.submit(); Se alguem tiver uma solução melhor por favor pode falar.