2016-04-20 4 views
0

Meine Hauptseite ist orders.aspx, von der ich eine andere ASPX-Seite öffne (Orderitems.aspx). Die Seite "Orderitems.aspx" wird als Popup geöffnet. Immer wenn der Benutzer das Popup-Fenster schließt, sollte die Hauptseite (Orders.aspx) zurückschreiben, um die neu hinzugefügten Elemente zu laden.Wie man ASPX-Seite aktualisiert, nachdem das Popup-Fenster geschlossen wurde

Meine Frage ist, wie man das Fenster schließen Ereignis und wie Seite laden in diesem zu fangen?

Ich verwende den folgenden Code, um das Popup-Fenster zu öffnen.

protected void AddItems_Click(object sender, EventArgs e) 
{ 
    string url = "Orderitems.aspx"; 
    ClientScript.RegisterStartupScript(this.GetType(), "OpenWin", "<script>openNewWin('" + url + "')</script>"); 
} 
+1

Warum in einem anderen Fenster öffnen? Das ist ziemlich 1990. Warum nicht ein modales Popup verwenden? Und warum nicht AJAX verwenden, um die neu geladenen Gegenstände zu aktualisieren? – mason

+0

Schätzen Sie Ihren Kommentar. Du meinst hier das AJAX Control Toolkit ModalPopupExtender? –

+0

Ja, das ist eine Option. Oder es gibt [jQuery UI Dialog] (https://jqueryui.com/dialog/). Oder [Bootstrap Modal] (http://getbootstrap.com/javascript/#modals). Oder welches CSS-Framework Sie verwenden, hat wahrscheinlich eines. Und wenn Sie kein CSS-Framework verwenden, wählen Sie eines! Bootstrap ist ziemlich populär und wird seit Jahren mit den ASP.NET Web-Projekten gebündelt. – mason

Antwort

0

Innerhalb Ihres Pop-up, können Sie einen Beitrag Zurück-Taste haben, die an eine Funktion gebunden werden können, die Page_load umleiten kann; Sie können eine Zählervariable haben, um zu verfolgen, was unter (! isPostBack) geladen werden soll. So etwas wie

<asp:Button ID="Post" Text="post" Visible="true" onclick="postBackToMain" runat="server" Width="413px" /> 

in Code hinter

protected void postBackToMain(object sender, EventArgs e) { 
      Response.Redirect("/Orders.aspx"); 
     } 

sollte funktionieren.

Verwandte Themen