>웹 프론트엔드 >프런트엔드 Q&A >asp.net 버튼 이벤트는 page_no javascript 코드를 닫습니다.

asp.net 버튼 이벤트는 page_no javascript 코드를 닫습니다.

王林
王林원래의
2023-05-29 19:03:361702검색

ASP.NET에서 현재 페이지를 닫으려면 일반적으로 window.close() 메서드를 사용하는 등 JavaScript 코드를 구현해야 합니다. 하지만 때로는 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 버튼 이벤트는 page_no javascript 코드를 닫습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.