Was ist der beste Weg, um eine ASPX-Seite aus dem Code-Behind zu schließen?
Ich habe einen Button-Event-Handler, mit dem ich die Seite schließen möchte, nachdem der Benutzer auf eine ASP.NET-Schaltfläche auf der Seite geklickt hat. Ich habe versucht, programmatisch eine JavaScript-Methode hinzuzufügen, die einen Befehl "window.close()" zum Ereignis "OnClientClick" enthält, um die Seite zu schließen, aber es funktioniert nicht. Die Schaltfläche ist auch ein asp:AsyncPostBoskTrigger
für ein AJAX-Update-Panel.
Die Anwendung verwendet .NET Framework 3.5.
UPDATE:UPDATE: Ich habe alle Ihre Anregungen aufgenommen und bin auf folgende Lösung gekommen:
Im Code dahinter:
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();");
}
In der aspx-Seite:
function CloseWindow() {
window.close();
}
Ein Postback ist der Prozess der Neuladung einer Seite, so dass, wenn Sie wollen, dass die Seite nach dem Postback zu schließen, dann müssen Sie Ihre window.close() Javascript, um mit dem Browser laufen ' s onload-Ereignis während der Postback, in der Regel mit dem ClientScript.RegisterStartupScript()
Funktion getan.
Aber sind Sie sicher, dass Sie das tun wollen? Das Schließen von Seiten neigt dazu, Benutzer zu verärgern.
Sie sollten ein Startskript einfügen, das die Seite schließt, nachdem der Postback abgeschlossen ist.
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "<script type='text/JavaScript'>window.close();</script>");