Nuova finestra

lunedì 29 settembre 2003 - 19.07

macnil Profilo | Newbie

arriciao a tutti!
Scusate se oggi sono insistente, ma ho un problema che mi assilla da un pò!
In un datagrid ho una colonna hyperlink che mi serve per accedere ad una pagina di dettagli. Quello che vorrei però è che si apra una nuova finestra, e qui ci sono riuscita con "target=_blanck", con dimensioni che decido io. So che dovrei usare javascript con windows.open, ma non ci riesco, qualcuno potrebbe dirmi da dove va richiamato questo javascript, considerando che nela colonna hyperlink ho:

<asp:HyperLinkColumn Text="dettagli" Target="_blank" DataNavigateUrlField="Identita" DataNavigateUrlFormatString="EsigenzaSing.aspx?id={0}" HeaderText="Dettagli"></asp:HyperLinkColumn>

grazie a tutti

mary

Admin Profilo | Junior Member

ti servono dei controlli web hyperlink ? o ti basterebbero dei link normali ?

Nel caso degli hyperlink, devi agire da code-behind con:
objHypLink.Attributes.Add("onclick") = "window.open(...);"

nel caso di un normale link (<a>)
<a href="#" onclick="windo.open();">blabla</a>

Ciao

Stefano Giannone [MCP .NET]

macnil Profilo | Newbie

ti ringrazio per la risposta, ma ho due domande da porti: 1)come faccio a riferirmi alla colonna hyperlink del datagrid per assegnarle l'attributo? Tu hai usato hypLink, ma che cosa è? 2)In window.open() devo rimettere l'url di destinazione? Se tu noti nel codice asp.net c'è già, e c'è anche la stringa di query (id={0}), oppure devo mettere solo le dimensioni della nuova finestra?

grazie mille
mary

Admin Profilo | Junior Member

prova così:

<asp:HyperLinkColumn Text="dettagli" Target="_blank" DataNavigateUrlField="Identita" DataNavigateUrlFormatString="javascript: window.open('EsigenzaSing.aspx?id={0}');" HeaderText="Dettagli"></asp:HyperLinkColumn>

se funziona, in window.open puoi settare altri parametri aggiuntivi, per specificare dimensioni e quant'altro.

Se non dovesse funzionare, puoi sempre fare in questo modo. Attacchi un handler all'ItemDataBound della datagrid, e recuperi il riferimento all'hyperlink (che è il controllo che genera la hyperlinkcolumn dentro la colonna), in questo modo:

...
Dim objHyperlink as HyperLink = DirectoCast(e.Item.Columns(n).Controls(0), HyperLink)
objHyperlink.Attributes.Add("onclick") = "window.open('...')";
...

Non ho provato, ma dovrebbe andare.

Spero di averti dato lo spunto per poter andare avanti.

Ciao

Stefano Giannone [MCP .NET]
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5