terça-feira, 17 de março de 2009

Usar javascript e asp para atualizar o listbox da janela parent usando window.opener

Usar javascript e asp para atualizar o listbox da janela parent usando window.opener


Vamos criar a seguinte situação para exemplificar a utilização de javascript em uma janela aberta com a utilização do comando javascript window.open, para atualizar valores em um listbox da janela principal.

Crie o arquivo produtos_adicionar.asp e insira um formulário com um campo do tipo listbox que será usado para você selecionar uma categoria a ser atribuída ao produto que está cadastrando.



Atribua o ID idcategoria para o listbox e insira código asp para gerar as opções do listbox relativas aos registros de categorias já existentes em seu banco de dados. O código asp para construir um listbox é muito simples mas vou colocar um exemplo:



Só tenho uma coisa a esclarecer no código acima: Utilizo a função AbreConexao() para criar a connectionstring e abrir o banco de dados.

Na janela que será aberta contendo as categorias será inserido o código para atualizar o listbox da janela parent utilizando window.opener do javascript. Segue abaixo o código:



Insira a chamada da função em uma tag para fechar a janela, por exemplo:

Fechar

Alguns comentários sobre o código:

A primeira coisa a ser feita é instanciar o listbox da janela parent usando:

var lstbox = eval("window.opener.document.forms[0].idcategoria");

Em seguida faça uma chamada a função clearlistbox passando o listbox como parâmetro para limpar as opções existentes antes de preencher o listbox com os valores atualizados.

clearlistbox(lstbox);

Para gerar os itens atualizados dentro da função populateList() foi utilizado um script ASP. O script faz uma consulta a tabela categorias de forma semelhante ao que foi feito na página parent citado anteriormente. Veja o trecho de código abaixo:



O script ASP acima vai gerar o código javascript necessário para criar e atribuir uma option para cada registro da tabela categorias no listbox instanciado pela variável lstbox.

Nenhum comentário:

Postar um comentário