L'événement de bouton asp.net ferme la page_aucun code javascript requis

王林
Libérer: 2023-05-29 19:03:36
original
1630 Les gens l'ont consulté

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" />
Copier après la connexion

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>");
}
Copier après la connexion

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();
}
Copier après la connexion

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();");
Copier après la connexion

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);
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal