Spesso si ha la necessità, in una pagina aperta come popup, di effettuare il refresh della pagina che ha richiesto l'apertura per aggiornarne i contenuti.
Un approccio al problema consiste nell'utilizzare, nel PostBack del popup, un semplice codice Javascript come questo:
opener.location.reload(); // refresh della form padre window.close(); // chiusura della popup
Per comodità si può realizzare un custom web control ed inserirlo così direttamente nella popup:
using System; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; using System.Text; namespace ASPItalia.com.Web.UI.Controls { public class PopupCloser: Control { private string alternateText; protected override void Render(HtmlTextWriter output) { StringBuilder html = new StringBuilder(); html.Append("<script type=\"text//javascript\"><!--\r\n"); html.Append("opener.location.reload();"); html.Append("window.close();"); html.Append("\r\n////--></script>"); // output a video output.Write(html.ToString()); } } } Un esempio di utilizzo può essere: [code lang="aspx"]<%@Register TagPrefix="aspitalia" Namespace="ASPItalia.com.Web.UI.Controls" Assembly="aspitalia.controls" %> <aspitalia:PopupClose id="popupCloser" runat="server" visible="false" />
Con la visualizzazione dello stesso quando è necessario chiudere la popup:
if (Page.IsPostBack) popupCloser.Visible = true;
In questo modo il codice Javascript sarà visibile sulla pagina e si otterrà l'effetto desiderato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.