2011-03-15 4 views
0

Excel 상태의 텍스트가있는 ASP.NET 페이지와 Excel 파일을 내보내는 데 사용할 단추가 있습니다. 사용자가 버튼을 클릭하면 즉시 파일을 생성하여 이진 스트림으로 클라이언트에 반환하려고합니다. 그런 다음 성공/실패를 표시하기 위해 텍스트 상태를 변경하려고합니다.브라우저로 이진 스트림을 보내고 페이지를 업데이트하십시오.

지금까지는 아무 문제없이 파일을 생성하여 보낼 수 있지만 서버 응답이 새로운 상태의 새로운 업데이트 된 페이지가 아닌 서버로 보내 졌기 때문에 분명히 상태가 표시되지 않습니다.

무엇이 가장 깨끗한 방법인지는 잘 모르겠습니다. 나는 생각할 수 있지만 최선의 방법입니다 :

  • 사용자 클릭 버튼.
  • 파일이 생성되어 세션의 스트림으로 저장됩니다.
  • 상태가 업데이트되고 새 상태가있는 페이지가 클라이언트에 반환됩니다.
  • 페이지의 Javascript 부분은 세션에서 저장된 스트림을 검색하는 제 3 자 페이지를 엽니 다.

어떻게 생각하십니까? 나에게 맥가이버를 느낀다.

감사합니다.

답변

0

다른 방법으로 수행하십시오. 버튼의 요청이 정상적인 응답으로 파일을 보낸 다음 다른 연결의 백그라운드에서 세션의 상태를 가져옵니다. AJAX를 사용하는 경우 DOM, UpdatePanel 등을 통해 기존 페이지를 동적으로 업데이트 할 수 있습니다. 그렇지 않으면 상태 페이지를 요청하고 타이머를 실행하여 주기적으로 페이지를 새로 고칩니다.

+0

파일을 버튼 클릭에 대한 일반적인 응답으로 보내면 서버 측 코드에서 AJAX를 사용하여 클라이언트 측 페이지에 자체로드를 요청할 수 있습니까? AJAX에 익숙하지 않지만 이런 기능이 있습니까? – md1337

+0

No. AJAX는 클라이언트 코드이며 별도의 연결을 사용하여 서버에 요청을 보냅니다. 서버가 사용자의 요청에 대한 응답으로 2 진 파일을 보내면 기존 페이지는 변경되지 않으므로 필요에 따라 클라이언트 측 스크립트를 계속 실행할 수 있습니다. AJAX가 활성화 된 경우 페이지에서 타이머를 사용하여 상태 요청을 보낼 수 있습니다. 그렇지 않은 경우 새 창을 열고 대신 새로 고침 타이머를 사용하십시오. –

관련 문제