Dans ASP.NET, la fermeture de la page actuelle nécessite généralement l'implémentation de code JavaScript, par exemple en utilisant la méthode window.close(). Mais parfois il est nécessaire de fermer la page en cas de bouton sans utiliser de code JavaScript. Cet article explique comment utiliser les événements de bouton pour fermer la page dans ASP.NET.
Tout d'abord, ajoutez un contrôle de bouton à la page ASP.NET et définissez sa valeur d'attribut :
<asp:Button ID="btnClose" runat="server" Text="关闭页面" OnClick="btnClose_Click" />
Ensuite, ajoutez le code suivant dans l'événement Click du bouton :
protected void btnClose_Click(object sender, EventArgs e) { Response.Write("<script>window.close();</script>"); }
Le code ci-dessus utilise la méthode Response.Write pour écrire le page génère du code JavaScript, réalisant ainsi la fonction de fermeture de la page actuelle.
Cependant, il y a un problème avec cette implémentation : si la fonction de blocage des pop-ups est activée dans le navigateur, le code JavaScript ne sera pas exécuté, entraînant l'échec de la fermeture de la page.
Afin de résoudre ce problème, vous pouvez utiliser un autre moyen fourni par ASP.NET pour fermer la page, c'est-à-dire utiliser la méthode Response.End côté serveur.
Ajoutez le code suivant dans l'événement Click du bouton :
protected void btnClose_Click(object sender, EventArgs e) { HttpContext.Current.Response.Flush(); HttpContext.Current.Response.SuppressContent = true; HttpContext.Current.ApplicationInstance.CompleteRequest(); }
Le code ci-dessus utilise l'objet HttpContext.Current et appelle les méthodes Response.Flush, Response.SuppressContent et ApplicationInstance.CompleteRequest pour fermer la page. affecté par le navigateur. Impact du blocage des pop-ups.
De plus, vous pouvez également utiliser la classe JavaScriptSerializer côté serveur pour sérialiser le code JavaScript dans une variable côté serveur, puis utiliser la variable dans l'événement Click du bouton pour fermer la page.
Tout d'abord, créez une instance de la classe JavaScriptSerializer et sérialisez le code JavaScript :
JavaScriptSerializer serializer = new JavaScriptSerializer(); string script = serializer.Serialize("window.close();");
Ensuite, utilisez cette variable dans l'événement Click du bouton pour fermer la page :
protected void btnClose_Click(object sender, EventArgs e) { ScriptManager.RegisterStartupScript(this, GetType(), "close", "<script>" + script + "</script>", false); }
Le code ci-dessus utilise la méthode ScriptManager.RegisterStartupScript pour enregistrer un Démarrez le script pour que le code JavaScript qui ferme la page soit exécuté une fois la page chargée.
En bref, il existe de nombreuses façons de fermer une page dans ASP.NET, et vous pouvez choisir la méthode appropriée en fonction de vos besoins réels. Cependant, il convient de noter qu'essayez de ne pas utiliser ces méthodes lors du chargement de la page pour éviter des opérations inutiles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!