2014-12-26 1 views
3

.aspx 페이지에서 첨부 파일을 다운로드 한 후 JavaScript를 사용하여 숨길 필요가있는 div이 있습니다. 나는 그것을하기 위해 아래의 코드를 사용했다. 그러나 Response이 등장하기 때문에 HideDiv()은 해고 당하지 않습니다.Response.End() 뒤에 코드에서 JavaScript 함수 호출

심지어 div를 서버 컨트롤로 설정하고 가시성을 false으로 설정하려고했습니다. 나는 또한 과 finally 블록 뒤에 ClientScript 부분을 넣으려고했다.

try{ 

    ClientScript.RegisterStartupScript(this.GetType(), "Hide", "HideDiv()", true); 
    Response.ContentType = "application/vnd.ms-excel"; 
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + ""); 
    Response.Write(tw.ToString()); 
    Response.End(); 
} 
catch (System.Threading.ThreadAbortException) 
     { 

     } 
     catch (Exception ex) 
     { 
      //log error 
     } 
     finally 
     { 

     } 

JavaScript를 작동 시키려면 어떤 아이디어가 필요합니까?

답변

3

.aspx 일반 처리기는 다음 파일을 다운로드를 만들기 당신은 같은 것을 호출 할 수 있습니다이

ClientScript.RegisterStartupScript(this.GetType(), "Hide", "HideDiv()", true); 
Response.Redirect("MyHandler.ashx") 

또는

JS가 사업부를 숨기고 리디렉션하는 기능을

function HideDivNRedirect() 
{ 
    //hide div 
window.location.href='myhandler.ashx'; 
} 

ClientScript.RegisterStartupScript(this.GetType(), "Hide", "HideDivNRedirect();", true); 
+0

beforeunload을 사용할 수 있습니다, 그것은 실행됩니다. 고마워요 – Nisha

+0

@ 환영 ... :) –

1

당신은 함수를 호출 할 수 있습니다 다음과 같은 코드 뒤에서 :

양식 .aspx.cs

button click으로 전화를 원하시면.

protected void Button_Click(object sender, EventArgs e) 
{ 
Page.ClientScript.RegisterStartupScript(this.GetType(), "Hide", "HideDiv();", true); 
} 
+0

예이 코드도 사용했습니다. 감사합니다 – Nisha

+0

가장 환영 :) –

1

Response.End(); 후 작동하지 않습니다 뒤에 코드에서 자바 스크립트 함수를 호출하지만이 일 response.End();

$(window).bind('beforeunload', function() { 
    // here your function 
});