Dica: Passando valores de uma popup para uma página em outra janela via JavaScript


É comum termos a situação de retornar um valor selecionado em uma janela popup para a página que abriu esta popup. Isso só é possível através de JavaScript, pois são eventos que ocorrem no lado cliente. Para conseguir isso, você poderia utilizar o seguinte bloco de código JavaScript na sua popup:

<script language="javascript">
function selecionaValor(valor)
{
  window.opener.document.forms[0].NOME_CONTROLE.value = valor;
  window.close();
}
</script>


onde:
window.opener é uma referência à janela que abriu a popup;
document.forms[0] é uma referência ao formulário (neste caso, o primeiro, cujo índice é 0) da janela que abriu a popup;
NOME_CONTROLE é o nome do controle HTML do formulário da janela que abriu a popup, para o qual você vai passar o valor selecionado;
valor é o novo valor que será atribuído ao controle da página que abriu a popup;
 
E para chamar a função:
 

<a href="javascript:selecionaValor('novo valor');">seu link</a>

Obs: a palavra "java script" acima deve ser escrita sem espaços; o theSpoke está bloqueando este tipo de escrita, provavelmente por questões de segurança, o que me obrigou a escrevê-la com um espaço em branco no meio. É por essas e outra que tem tanta gente abandonando o theSpoke...

Ricardo Oneda

Comments (2) -

  • Juliano Nunes

    10/30/2005 4:33:34 PM | Reply

    Se você utilizar aquele esquema de passar os valores através do HttpContext acho que também funcionaria, seguindo aquele artigo do Israel Aéce. Mas dá bem mais trabalho. Depende do que a pessoa quer fazer pra compensar fazer do outro modo.

  • Ricardo Oneda

    10/30/2005 10:59:56 PM | Reply

    Juliano, o HttpContext funciona bem quando temos navegação entre páginas feitas no servidor - por exemplo, através do Server.Transfer(). O exemplo que dei é para casos em que temos duas páginas abertas simultaneamente, cada uma em janelas de browsers distintas, algo como ter um link em uma página que abre uma popup para seleção de algum item. Como os eventos ocorrem no cliente (abertura de uma nova janela, clique em um dos itens e fechamento da janela), utiliza-se javascript para recuperar os valores e passar para a outra janela.

Loading
Oneda | Utilizando o ASP.NET MVC Framework com o Visual Web Developer 2008 Express

Utilizando o ASP.NET MVC Framework com o Visual Web Developer 2008 Express

ASP.NET MVC Framework foi projetado para o .NET Framework 3.5, mas você não é obrigado a utilizar a versão comercial do Visual Studio 2008. Se você ficou com vontade de experimentar o novo framework mas não tem acesso ao Visual Studio 2008, poderá utilizá-lo com o Visual Web Developer 2008 Express, que é uma versão mais enxuta (e gratuita) do Visual Studio 2008.

É importante levar em consideração que o ASP.NET MVC Framework foi feito utilizando o modelo de projeto Web Application. Atualmente, o Visual Web Developer 2008 Express (VWD Express) não suporta este tipo de projeto (ele cria somente projetos do tipo Web Site). Portanto, se você simplesmente instalar o ASP.NET MVC Framework e tentar criar um projeto no VWD Express, não irá conseguir. Você tem duas alternativas: a primeira, é adaptar manualmente seu projeto do tipo Web Site para utilizar o ASP.NET MVC Framework, como é mostrado neste post. A outra maneira, mais rápida e prática, é utilizar um template para projetos MVC para o VWD Express, feito por um desenvolvedor independente e que pode ser baixado em seu site.

Vale lembrar que essas são soluções temporárias, já que o ASP.NET MVC Framework ainda se encontra em versão CTP e o suporte nativo ao VWD Express será adicionado, pela Microsoft, em versões futuras.

Loading