2014-05-16 2 views
0

버튼 클릭시 발생하는 C# 코드의 기능이 있습니다. 이것은 스팬을 "DONE"으로 변경해야하며, ZipFile 체크 박스가 선택되면 사용자에게 zip 파일을 실행시킵니다.ASP.NET 함수를 사용한 응답 처리

Process.Text = "DONE"; 
    if (ZipFile.Checked) 
    { 
     Response.AppendHeader("content-disposition", "attachment; filename=" + folderName); 
     Response.ContentType = "application/zip"; 
     using (ZipFile zip = new ZipFile()) 
     { 
      zip.AddDirectory(Server.MapPath("PDFs")+"/"+folderName); 
      zip.Save(Response.OutputStream); 
     } 
     Response.End(); 
    } 

확인란을 선택하지 않으면 완료가 표시됩니다. ZipFile 확인란을 선택하면 zip 파일을 보내지 만 더 이상 process.text = DONE을 변경하지 않습니다. 응답 ASP.NET 함수 반환 덮어 쓰는 것 같습니다. 그러나 이것이 Response를 처음 사용하는 것이므로 분명히 잘못된 것을하고 있습니다.

+0

'Response.End'라고 추측합니다. 문제가 있습니다. –

+0

@RickS 그렇지 않습니다. 나는 그것이 도움이 될지 알아보기 위해 그 후에 덧붙였다. – Timotheus

+0

포럼 사이트와 달리 "감사합니다"또는 "도움을 주신 분께"또는 서명을 사용하지 않습니다. "[Hi, '감사,'태그 라인 및 인사말을 게시물에서 삭제해야합니까? '(http://meta.stackoverflow.com/questions/2950/should-hi-thanks-taglines-and-salutations-be)를 참조하십시오. -removed-from-posts) –

답변

0

서버쪽에 텍스트를 설정하는 것 외에도 클라이언트 쪽에서 텍스트를 설정하십시오. (ZipFile.Checked!) 당신이 시나리오에서 다음뿐만 아니라 서버 측의 텍스트를 설정하지 않으면 기억,

<script> 
    function btnProcessClicked() { 
     $('#<%= Process.ClientID %>').text("DONE"); 
     return true; 
    } 
</script> 

그러나이 방법에서, 스팬은 다시 되돌아갑니다 : 다음 코드를 사용해보십시오 다시 게시 이후 마지막 서버 값

+0

전체적인 문제는 버튼을 눌렀을 때 제대로 끝낼 수 없다는 것입니다. 완료 메시지의 전체 점은 표시되지 않을 수도 있다는 것입니다. 30 초 이상 (즉, 서버 코드가 완료 될 때마다). 코드가 큰 텍스트 영역에서 읽고 PDF를 생성하는 중입니다. 시간이 오래 걸릴 수 있습니다.이 긴 서버 측 프로세스가 완료 될 때까지 완료 메시지가 표시되지 않아야합니다. (당신이 게시 한 코드가 JS를 사용하는 HTML/클라이언트 측에 있다고 가정합니다.) – Timotheus