Ne avevo gia parlato di questa nuova proprietà dei controlli "Button".
Oggi mi sono accorto di un altra cosa.
Ho inserito come contenuto di questa proprietà il codice javascript necessario a far aprire un pop-up. Così facendo la nuova finestra veniva correttamente aperta, ma nella finestra padre veniva effettuato il postback della pagina.
Per eliminare questo comportamento, basta aggiungere un return false; dopo la chiamata di una qualsiasi funzione javascript.

<script type="text/javascript">

function apri(url,w,h)
{
mywin = window.open(url,"window", 'toolbar=0,
location=0, directories=0, status=0, menubar=0,
scrollbars=1, resizable=0, width='+w+', height='+h+'');
}
</script>
<asp:Button id="btn" runat="server" Text="Click me"
OnClientClick="apri('newPage.html', 200, 300); return false;"
/>

Se invece, vogliamo riabilitare il PostBack nella pagina padre, basta o scrviere return true; o omettere del tutto il tipo di ritorno.
Se inoltre, vogliamo far partire il reload della pagina padre, una volta chiusa quella figlio, bisogna inserire questo codice nell'evento "unload" del body della pagina figlio:

<body onunload="opener.location.reload();">

e un window.close() in un button qualsiasi per chiudere la finestra figlio:

<asp:Button ID="btn" runat="server" Text="Close and refresh parent" OnClientClick="window.close();" />

Commenti(2) - Posted @ 8/28/2006 6:02:22 PM - Categoria: ASP.NET 2.0 - Permalink - Share on twitter | facebook


COMMENTI
Autore: maurizio brusini - scritto il 10/28/2007 1:51:27 PM
Leggendo il tuo post mi chiedo se posso risolvere il mio problema usando window.open ecc ecc.
Ho una DDL e una Gridview collegata nella finestra padre.
Nella finestra figlio ho una DetailsView.Sto usando il comando Redirect per muovermi tra le fineste ma quando torno perdo o la paginazione o il sort della GridView.Ciò che vorrei ottenere è tornare e vedere la modifica fatta nella Grid di partenza ma senza perdere la paginazione eventuale o il sort.
Puoi aiutarmi per cortesia?
maurizio brusini
p.s. sono un novizio di asp.net

Autore: Peppe - scritto il 10/28/2007 7:43:12 PM
ciao !
si, potresti far aprire un pop-up con javascript ogni volta che viene selezionata una riga nella tua GridView, in questo modo mantiene sia la paginazione che il sorting.
qui trovi un esempio che sempre perfetto per il tuo caso:

http://www.codeproject.com/useritems/gridview_popup.asp

a presto !

INSERISCI UN COMMENTO

Nome *
Indirizzo e-mail
(non verrà pubblicato)
Commento *