sexta-feira, 3 de outubro de 2003

Janelas Popup no Datagrid .net

Em meu Datagrid eu tenho uma coluna HyperLinkColumn.  Sempre que um usuário clicar nela, uma janela pop-up se abrirá com um conteúdo relativo ao link.


Isto parece fácil exceto por um problema: Uma janela extra se abre com o texto: [object]. 


Este é o código que cria a coluna Hyperlink: 


HyperLinkColumn col3 = new HyperLinkColumn();
col3.DataNavigateUrlFormatString = javascript:window.open('detalhe.aspx?id={0}'','','width=640;height=480;
scrollbars=1; resizable=1');"
col3.DataTextField = "Produto";
col3.DataNavigateUrlField = "CodProduto";
grid1.Columns.Add(col3);


O objeto Hyperlink instrui ao browser para avaliar a expressão e trocar a pagina corrente pelo seu resultado, a menos que esse resultado seja void.
O valor retornado por window.open é um objeto, cuja representação string é a palavra [object].


Para se livrar deste efeito colateral, certifique-se que a expressão avaliada resulta em void


Aqui segue o que eu fiz para evitar este problema:


Na página aspx:


<SCRIPT LANGUAGE="JavaScript">
<!--
   void function popUp(URL)
   {
      window.open(URL, 'detalhe', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=700,height=500,left=10,top=10');
   }
// -->
</script>


no code-behind, mudei a linha para:
col3.DataNavigateUrlFormatString = "javascript:popUp('detalhe.aspx?id={0}');";



Esta matéria foi postada originalmente no ASP4Developers por Valmir Cinquini (site), que na época era "Analista/Programador C#, VB.Net, ASP, VB, Javascript e T-SQL

www.cinquini.com.br/vcinquini>". Hoje, vai saber...

0 comentários: