ReportViewer에 비동기 렌더링 구성
ReportViewer 웹 서버 컨트롤에 비동기 렌더링을 구성하려면 렌더링 및 처리 모드를 설정해야 합니다. 렌더링 동작은 컨트롤의 AsyncRendering 속성으로 지정되며 처리 동작은 ProcessingMode 속성으로 지정됩니다. 이러한 두 속성을 조합하여 ASP.NET 페이지의 렌더링 방식을 정의합니다.
다음 표에서는 다양한 렌더링 및 처리 모드에 대한 ReportViewer 컨트롤의 동작을 설명합니다.
속성 설정 | 로컬 처리 모드(LocalReport 클래스) | 원격 처리 모드(ServerReport 클래스) |
---|---|---|
AsyncRendering = True |
|
|
AsyncRendering = False |
|
|
AsyncRendering이 True로 설정된 경우 Drillthrough 이벤트를 제외한 코드의 탐색 이벤트를 구독하면 다시 게시가 발생합니다. Drillthrough 이벤트는 이벤트 구독 여부와 상관없이 다시 게시됩니다. 이 속성이 False로 설정된 경우에는 이벤트를 구독했는지 여부와 상관없이 다시 게시가 발생합니다.
비동기 모드
AsyncRendering 속성이 True로 설정된 경우 ReportViewer는 페이지의 IFRAME 내에서 보고서를 렌더링합니다. IFRAME을 사용하면 페이지의 나머지 부분이 ReportViewer 컨트롤에 의해 차단되지 않고 로드될 수 있습니다.
로컬 처리 모드와 원격 처리 모드는 모두 보고서 렌더링에 IFRAME을 사용합니다. 그러나 진행률 표시기를 사용하는 경우 ReportViewer가 해당 표시기를 렌더링하는 방식에 차이가 있습니다. 보고서가 로컬로 처리되는 경우 처리가 모두 완료될 때까지 보고서의 진행률 표시기를 렌더링할 수 없습니다. 보고서가 원격으로 처리되는 경우에는 서버에서 보고서가 처리되는 동안 진행률 표시기(사용하는 경우)가 표시됩니다.
XHTML 및 ReportViewer 웹 서버 컨트롤에 대한 고려 사항
ReportViewer 웹 서버 컨트롤이 XHTML로 작성된 응용 프로그램에서 비동기 모드로 실행되도록 구성된 경우 ReportViewer 컨트롤을 올바르게 표시하려면 특정 단계를 따라야 합니다. ReportViewer 컨트롤이 상대 높이를 사용(예: 높이가 사용 가능한 공간의 백분율로 지정되는 경우)하면 프레임 및 DIV 태그가 XHTML의 포함하는 테이블에서 렌더링되는 방법으로 인해 컨트롤이 0픽셀의 높이로 축소됩니다. 다음 중 하나를 수행하여 이 문제를 방지할 수 있습니다.
ReportViewer 컨트롤의 높이를 명시적으로 백분율이 아닌 실제 값으로 설정합니다.
<head> 태그에 다음 스타일 설정을 추가합니다.
<style>html,body,form {height:100%}</style>
. HTML, body 및 form 태그를 최대 높이로 강제 적용하면 ReportViewer 컨트롤에 사용되는 프레임도 최대 높이로 확장되어 페이지에 해당 프레임이 표시됩니다.페이지에서 xhtml doctype을 제거합니다.
동기 모드
AsyncRendering 속성이 False로 설정된 경우 ReportViewer는 페이지의 나머지 부분 내에서 인라인 HTML로 보고서를 렌더링합니다. HTML이 인라인이므로 보고서가 처리 및 렌더링되는 동안 페이지의 나머지 부분이 차단됩니다.
참고 |
---|
보고서에 문서 구조가 포함되어 있으며 해당 보고서가 동기 모드에서 렌더링되는 경우 문서 구조는 표시되지 않습니다. |
참고 항목
참조
개념
ReportViewer에 대한 Web.config 설정
ReportViewer 웹 서버 및 Windows Forms 컨트롤
ReportViewer에 로컬 처리 구성
ReportViewer에 원격 처리 구성