내 프로젝트에서 페이지로드 이벤트에 진행 표시 줄을 표시해야합니다. 기본적으로 다른 신청서에서 requiest를받습니다. 요청에 따라 내 페이지에서 pdf 파일을 만듭니다. pdf 파일을 만들려면 시간이 걸릴 것입니다. 페이지가 생성 될 때 진행 막대 또는 애니메이션 GIF 이미지를 표시해야합니다. 어떻게하는지 잘 알고 있습니다. 여기서 button_click 이벤트를 사용하지 않는다는 것을 기억하십시오.페이지로드 이벤트 Ajax 진행 막대 표시
답변
이 같은 일이 일할 수있는 상상 : ShowProgressBar(true);
그리고 후 : true
매개 변수
function ShowProgressBar(booleanValue)
{ if(booleanValue)
$('#elementcontaingimage').show('slow');
else
$('#elementcontaingimage').hide('slow');
}
: document.ready에
이 같은 함수를 호출하여 표시되는 GIF 이미지가 PDF가 생성됩니다. 단지 같은 전화 :
ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(this.GetType(), "key", "ShowProgressBar(false);", false);
을하지만 그것은 간단하지 않을 것이라는 느낌이 : S를
는 UPDATE - 작업 예를 들어 내가있는 방법을 알아 낸
는 그것이 작동되도록합니다 그러나 PDF를 생성하는 코드를 PDF 파일을 응답 스트림에 쓰는 것이 목적 인 다른 페이지로 분리해야합니다. 더 나아가 PDF 파일을 응답 스트림에 쓰려면 HttpHandler를 작성할 수 있지만이 예제에서는 일반 aspx 페이지에서 PDF 파일을 작성합니다.
1 단계 : 다음 마크 업과 자바 스크립트 코드를 페이지에 삽입하십시오.
<div id="imageDiv">
<img alt="" src="images/ajax-loader.gif" />
</div>
<script language="javascript" type="text/javascript">
function ShowProgressBar(booleanValue) {
if (booleanValue) {
$('#imageDiv').show('slow');
createIframe();
}
else
$('#imageDiv').hide('slow');
}
function callback(parent) {
ShowProgressBar(false);
}
function createIframe() {
$('<iframe />', {
name: 'myFrame',
id: 'myFrame',
src: 'PageGeneratingPDF.aspx',
style: 'display:none;'
}).appendTo('body').load(function() {
callback(this);
});
}
window.onload = ShowProgressBar(true);
</script>
설명 : 페이지로드 ShowProgressBar에는 애니메이션 GIF 이미지를 표시 시작이라고합니다. 다음 줄 -createIframe();-
은 iframe
을 동적으로 만들고 src
특성을 PDF를 응답 스트림에 쓰는 페이지의 URL로 설정합니다. 그런 다음 iframe
을 페이지 body
에 추가하고 iframe
로드가 완료 될 때 호출 될 callback
함수를 첨부합니다. PageGeneratingPDF.aspx
이 PDF 파일 생성을 마쳤을 때 callback
함수가 호출 되었기 때문에 callback
함수가 수행 할 수있는 유일한 작업은 애니메이션 GIF 이미지가 포함 된 div를 숨기는 것입니다.
뒤에 PageGeneratingPDF.aspx
코드는 다음과 같을 수 있습니다 :
protected void Page_Load(object sender, EventArgs e)
{
Thread.Sleep(10000);//Give the sensation that the pdf file takes long to generate
//replace line below with actual code that generates the PDF file
byte[] pdf = File.ReadAllBytes(Server.MapPath(@"~/file.pdf"));
Response.AddHeader("Content-disposition", "attachment; filename=report.pdf");
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(pdf);
Response.Flush();
Response.End();
}
당신이 완료됩니다. 결과물은 다음과 같습니다. 처음
...PDF를 생성 후 ...
에 유래에 매우 도움이되었다.- 1. 라이트 박스에있는 진행 막대
- 2. 델파이 진동 진행 막대
- 3. 32 스레드에서 스레드를 사용하여 진행 막대 표시!
- 4. 탐색 표시 줄에 진행 막대 추가
- 5. 자바에서 FFMPEG 진행 막대
- 6. 수직 진행 막대 flex
- 7. 안드로이드의 상태 표시 줄에 불확실한 진행 막대 표시
- 8. 수직 진행 막대
- 9. 양식의 진행 막대
- 10. 다중 행 진행 막대
- 11. 이클립스 진행 막대
- 12. 순환 대기 이미지로 진행 막대 변경
- 13. 메서드 실행을 나타내는 진행 막대
- 14. MySQL 명령 진행 막대 구현
- 15. 느린 비 Ajax 페이지에 대한 가짜 로딩/진행 막대
- 16. 긴 Ajax 호출 중에 진행 상황 표시
- 17. AJAX 호출 (asp.net)의 실시간 진행
- 18. Ajax 내부 페이지로드
- 19. AJAX 부분 페이지로드?
- 20. Firefox에서 페이지로드 완료 이벤트 감지
- 21. 많은 컨트롤을 생성하는 동안 업데이트되는 진행 막대 표시
- 22. 유연한 진행 표시 줄
- 23. 세련된 Javascript 진행 (로드 중) 막대 ...?
- 24. 웹 페이지의 진행 표시 줄
- 25. PHP + Ajax 진행 표시기?
- 26. 은 ajax 요청으로 progressbar 진행 상황을 보여줍니다.
- 27. PageMethods의 진행 표시 줄을 표시/숨기는 방법?
- 28. AJAX 진행 : 셸에서 출력 읽기
- 29. 진행 막대 jquery를 사용하는 레일 3 용 보석 또는 플러그인
- 30. WinForms의 진행 표시 줄
안녕하세요 이카루스, 작동하지 않습니다. pdf가 생성 된 후 이미지가로드됩니다 (10 초 후). 하지만 pdf가 생성되는 동안 로딩 이미지를 보여주고 싶습니다. – Henry
@Henry 방금 작업 예제를 게시했습니다. 당신이 그것을 구현하면 알려 주시기 바랍니다. – Icarus
나의 늦은 답변에 죄송합니다. 정말 도움이되었습니다. 당신은 나를 위해 전체 코드를 작성했습니다. 도움을 많이 주셨습니다. – Henry