Das asp.net-Schaltflächenereignis schließt die Seite. Es ist kein Javascript-Code erforderlich

王林
Freigeben: 2023-05-29 19:03:36
Original
1627 Leute haben es durchsucht

In ASP.NET erfordert das Schließen der aktuellen Seite normalerweise die Implementierung von JavaScript-Code, beispielsweise die Verwendung der Methode window.close(). Manchmal ist es jedoch erforderlich, die Seite im Schaltflächenereignis zu schließen, ohne JavaScript-Code zu verwenden. In diesem Artikel wird erläutert, wie Sie Schaltflächenereignisse zum Schließen der Seite in ASP.NET verwenden.

Fügen Sie zunächst ein Schaltflächensteuerelement zur ASP.NET-Seite hinzu und legen Sie dessen Attributwert fest:

<asp:Button ID="btnClose" runat="server" Text="关闭页面" OnClick="btnClose_Click" />
Nach dem Login kopieren

Dann fügen Sie den folgenden Code im Click-Ereignis der Schaltfläche hinzu:

protected void btnClose_Click(object sender, EventArgs e)
{
    Response.Write("<script>window.close();</script>");
}
Nach dem Login kopieren

Der obige Code verwendet die Response.Write-Methode, um The zu schreiben Die Seite gibt JavaScript-Code aus und realisiert so die Funktion zum Schließen der aktuellen Seite.

Allerdings gibt es bei dieser Implementierung ein Problem: Wenn die Popup-Blockierungsfunktion im Browser aktiviert ist, wird der JavaScript-Code nicht ausgeführt, was dazu führt, dass die Seite nicht geschlossen werden kann.

Um dieses Problem zu lösen, können Sie die Seite auf eine andere von ASP.NET bereitgestellte Weise schließen, nämlich die Response.End-Methode auf der Serverseite verwenden.

Fügen Sie den folgenden Code im Click-Ereignis der Schaltfläche hinzu:

protected void btnClose_Click(object sender, EventArgs e)
{
    HttpContext.Current.Response.Flush();
    HttpContext.Current.Response.SuppressContent = true;
    HttpContext.Current.ApplicationInstance.CompleteRequest();
}
Nach dem Login kopieren

Der obige Code verwendet das HttpContext.Current-Objekt und ruft die Methoden Response.Flush, Response.SuppressContent und ApplicationInstance.CompleteRequest auf. Dies ist bei dieser Methode nicht der Fall Auswirkungen der Popup-Blockierung.

Darüber hinaus können Sie auch die serverseitige JavaScriptSerializer-Klasse verwenden, um den JavaScript-Code in eine serverseitige Variable zu serialisieren, und dann die Variable im Click-Ereignis der Schaltfläche verwenden, um die Seite zu schließen.

Erstellen Sie zunächst eine Instanz der JavaScriptSerializer-Klasse und serialisieren Sie den JavaScript-Code:

JavaScriptSerializer serializer = new JavaScriptSerializer();
string script = serializer.Serialize("window.close();");
Nach dem Login kopieren

Verwenden Sie dann diese Variable im Click-Ereignis der Schaltfläche, um die Seite zu schließen:

protected void btnClose_Click(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "close", 
        "<script>" + script + "</script>", false);
}
Nach dem Login kopieren

Der obige Code verwendet die ScriptManager.RegisterStartupScript-Methode, um eine zu registrieren Starten Sie das Skript, damit der JavaScript-Code, der die Seite schließt, nach dem Laden der Seite ausgeführt wird.

Kurz gesagt, es gibt viele Möglichkeiten, eine Seite in ASP.NET zu schließen, und Sie können die geeignete Methode entsprechend Ihren tatsächlichen Anforderungen auswählen. Es ist jedoch zu beachten, dass Sie diese Methoden beim Laden der Seite nicht verwenden sollten, um unnötige Vorgänge zu vermeiden.

Das obige ist der detaillierte Inhalt vonDas asp.net-Schaltflächenereignis schließt die Seite. Es ist kein Javascript-Code erforderlich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage