코드 비하인드에서 ASPX 페이지를 닫는 가장 좋은 방법은 무엇인가요?
사용자가 페이지에서 ASP.NET 버튼을 클릭한 후 페이지를 닫으려는 버튼 이벤트 핸들러가 있습니다. 페이지를 닫기 위해 window.close()
명령이 포함된 JavaScript 메서드를 OnClientClick
이벤트에 프로그래밍 방식으로 추가하려고 시도했지만 작동하지 않습니다. 이 버튼은 AJAX 업데이트 패널에 대한 asp:AsyncPostBoskTrigger
이기도 합니다.
이 애플리케이션은 .NET Framework 3.5를 사용합니다.
일반적으로 다음과 같은 일을 할 것입니다
<! - 언어: c # - >.
protected void btnClose_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.close();", true);
}
그러나 다른 원컨대 셨으며 판가름 날 서로 다른 점에 유의하십시오. Firefox won& # 39, t, t # 39 열 수 있는 창이 닫으십시오 wasn& 사용자가 (연 빈다우지오픈 을 (를) ' ()').
IE7, 이 페이지를 사용자에게 물어봅니다 " " is trying to close (Yes no). 대화.
어떤 경우든 창의 항상 닫기와 협상을 위한 준비를 해야 합니다!
2 위 문제에 대한 하나의 수리입니다 사용할 수 있습니다.
<! - 언어: c # - >.
protected void btnClose_Click(object sender, EventArgs e) {
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.open('close.html', '_self', null);", true);
}
만들어 클로에스타믈:
<html><head>
<title></title>
<script language="javascript" type="text/javascript">
var redirectTimerId = 0;
function closeWindow()
{
window.opener = top;
redirectTimerId = window.setTimeout('redirect()', 2000);
window.close();
}
function stopRedirect()
{
window.clearTimeout(redirectTimerId);
}
function redirect()
{
window.location = 'default.aspx';
}
</script>
</head>
<body onload="closeWindow()" onunload="stopRedirect()" style="">
<center><h1>Please Wait...</h1></center>
</body></html>
참고로 클로에스타믈 재지정합니다 경우 2 초 후에 어떤 이유로 창이 닫히지 default. aspx 했다.
protected void btnOK_Click(object sender, EventArgs e)
{
// Your code goes here.
if(isSuccess)
{
string close = @"<script type='text/javascript'>
window.returnValue = true;
window.close();
</script>";
base.Response.Write(close);
}
}
UPDATE: 여러분의 의견을 모두 수렴하여 다음과 같은 해결책을 마련했습니다:
코드 비하인드에서:
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();");
}
aspx 페이지에서:
function CloseWindow() {
window.close();
}
그 다음은 코드를 사용하는 경우 라다이아스만거 하는 데 도움이 됩니다.
RadAjaxManager1.ResponseScripts.Add("window.opener.location.href = '../CaseManagement/LCCase.aspx?" + caseId + "';
window.close();");
만날 수 없는 이유를 누구나 답을 제공한 작업 때문에 it& # 39 의 javascript 에서 연 처리를 위해 javascript 에서 단힌 페이지 것이어야 합니다.
이 때문에 많은 사람들이 사용하는 수도 있다 '또는' 발견사항 asp 질문 탐색하십시오 asp 페이지를 일부 asp: 하이퍼링크에 리디렉션하십시오 정렬하려면 문을 닫아야 하는. # 39, t, 따라서 이 방법을 사용하여 javascript 에서 닫으십시오 don& 리디렉션을 javascript 않습니다.
내가 찾은 내 애플리케이션 및 that& 간편하게 사용할 수 없으므로 '와', '' s # 39 나비가테우를 asp:Hyperlink.Attributes 온 클릭 '을 사용하는 이 창을 열려면' 추가 하이퍼링크에 자바 스크립트 의해 문을 닫아야 하는 javascript.
aspHyperlink.NavigateUrl = "https://www.google.com";
위의 나비가테우를 제거되고 부착합니다 대신 우리는 우리의 클릭 이벤트.
aspHyperlink.Attributes.Add("onclick", "javascript:openInNewTab('https://www.google.com');");
그 뒤에 있는 페이지의 url 열기 위해 javascript 코드를 제공하는 우리는 우리의 아스피퍼링크 라이언토
function openInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
}
이제 모든 페이지를 닫을 수 있도록 제공된 로페냉뉴타바 '' 를 통해 열려 있는 분입니다.
window.close();
닫기 위한 windows 응용 프로그램, asp.net
". 티스트클로스 (); ".
예:
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}