asp.net 및 C#에서 ajax를 사용하는 웹 응용 프로그램이 있습니다. 이제 ASP 단추를 클릭하면 CodeBehind (페이지 이름은 original.aspx)에서 PDF 뷰어로 보고서 뷰어를 내보내려고합니다. UpdatePanel 내에 버튼을 넣을 때를 제외하고 모든 것이 완벽하게 작동합니다. 그래서 인터넷을 검색 한 후, Response.BinaryWrite, Response.Flush 등이 UpdanePanel에서 작동하지 않는다는 것을 발견했습니다. 그 이유는 페이지에 많은 컨트롤이있어서 UpdatePanel을 사용하는 목적을 무시한 PostBackTrigger로 버튼을 지정하지 않는 한 수출 단계에 도달하기 전에 계속 진행됩니다.
그래서 PDF로 내보내는 코드를 다른 페이지의 페이지로드 이벤트 (Default.aspx라고 말하면 됨)로 전송하고 Response.Redirect를 사용하여 내보내기 페이지의 새 탭을 여는 것으로 생각했습니다.
실제로 일어난 것은 PDF가 자동으로 다운로드되지만 (원본 페이지 (original.aspx)에있는 동안) 리디렉션 없이는 - 어느 쪽이 좋긴하지만 UpdateProgress가 활성화되어 gif 사진을 표시하는 것을 중단하지 않았습니다. 계속 반복하십시오. 코드에서 UpdateProgress를 제거하면 모든 것이 예상대로 실행됩니다. UpdatePanel 내에있는 버튼 (PostBackTrigger가 아닌 비동기)과 CodeBehind의 Response.Redirect를 사용하는 동안 파일을 내보내고 다운로드합니다.
이 문제에 대한 특정 클릭 짝수 또는 다른 솔루션 만 사용하는 코드 숨김에서 UpdateProgress 프로세스를 사용 중지하거나 종료하는 방법이 있습니까?Response.Redirect를 사용하여 업데이트 진행 중 C# .NET
1
A
답변
1
당신은 전체 페이지 대신 파일 다운로드 문제로 인해 부분 페이지 업데이트를 다시 게시 PostBackTrigger 내부 컨트롤의 ID를 설정할 수 있습니다.
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
...
<Triggers>
<asp:PostBackTrigger ControlID="DownloadButton" />
</Triggers>
</asp:UpdatePanel>