首頁 > web前端 > 前端問答 > asp.net 按鈕事件關閉頁面_不要javascript程式碼

asp.net 按鈕事件關閉頁面_不要javascript程式碼

王林
發布: 2023-05-29 19:03:36
原創
1690 人瀏覽過

在ASP.NET中,關閉目前頁面的操作通常需要使用JavaScript程式碼來實現,例如使用window.close()方法。但有時候需要在按鈕事件中關閉頁面而不使用JavaScript程式碼。本文將介紹如何在ASP.NET中使用按鈕事件來關閉頁面。

首先,在ASP.NET頁面中新增一個按鈕控件,並設定其屬性值:

<asp:Button ID="btnClose" runat="server" Text="关闭页面" OnClick="btnClose_Click" />
登入後複製

然後,在按鈕的​​Click事件中加入以下程式碼:

protected void btnClose_Click(object sender, EventArgs e)
{
    Response.Write("<script>window.close();</script>");
}
登入後複製

上面的程式碼使用了Response.Write方法來向頁面輸出JavaScript程式碼,從而實現了關閉目前頁面的功能。

然而,這種實作方式有一個問題:如果瀏覽器中開啟了彈出視窗的封鎖功能,那麼JavaScript程式碼將無法執行,導致關閉頁面失敗。

為了解決這個問題,可以使用ASP.NET提供的另一種方式來關閉頁面,也就是使用伺服器端的Response.End方法。

在按鈕的Click事件中加入以下程式碼:

protected void btnClose_Click(object sender, EventArgs e)
{
    HttpContext.Current.Response.Flush();
    HttpContext.Current.Response.SuppressContent = true;
    HttpContext.Current.ApplicationInstance.CompleteRequest();
}
登入後複製

上面的程式碼使用了HttpContext.Current對象,呼叫了Response.Flush、Response.SuppressContent和ApplicationInstance.CompleteRequest方法來關閉頁面,這種方式不受瀏覽器彈出視窗阻止功能的影響。

此外,也可以使用伺服器端的JavaScriptSerializer類別來將JavaScript程式碼序列化為伺服器端的變量,然後在按鈕的Click事件中使用該變數來關閉頁面。

首先,建立一個JavaScriptSerializer類別的實例,並序列化JavaScript程式碼:

JavaScriptSerializer serializer = new JavaScriptSerializer();
string script = serializer.Serialize("window.close();");
登入後複製

然後,在按鈕的​​Click事件中使用該變數來關閉頁面:

protected void btnClose_Click(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "close", 
        "<script>" + script + "</script>", false);
}
登入後複製

上面的程式碼使用了ScriptManager.RegisterStartupScript方法來註冊一個啟動腳本,讓頁面在載入完成後執行關閉頁面的JavaScript程式碼。

總之,ASP.NET中關閉頁面的方法有多種,可以依照實際需求選擇適合的方式。不過要注意的是,盡量不要在頁面載入中使用這些方法,以避免不必要的操作。

以上是asp.net 按鈕事件關閉頁面_不要javascript程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板