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();" />