궁극적 인 솔루션 (SSRS 2012에서도 작동합니다!)
SSRS 서버에서 다음 파일에 다음 스크립트를 추가합니다.
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js
function pageLoad() {
var element = document.getElementById("ctl31_ctl10");
if (element)
{
element.style.overflow = "visible";
}
}
참고 : azzlak이 언급했듯이 div의 이름이 항상 ctl31_ctl10
. SQL 2012의 경우 시도 ctl32_ctl09
하고 2008 R2의 경우 ctl31_ctl09
. 이 솔루션이 작동하지 않으면 브라우저에서 HTML을보고 스크립트가 overflow:auto
속성을 overflow:visible
.
ReportViewer 제어를위한 솔루션
이 스타일 라인 을 .aspx
페이지 (또는 .css
가능한 경우 링크 된 파일)에 삽입
#reportViewer_ctl09 {
overflow:visible !important;
}
이유
Chrome과 Safari overflow:auto
는 IE와 관련하여 다른 방식으로 렌더링 됩니다.
SSRS HTML은 QuirksMode HTML이며 IE 5.5 버그에 의존합니다. 비 IE 브라우저에는 IE 쿼크 모드가 없으므로 HTML을 올바르게 렌더링합니다.
SSRS 2008 R2 보고서에서 생성 된 HTML 페이지 div
에는 overflow:auto
스타일 이 있는이 포함되어 있으며 보고서를 보이지 않는 보고서로 변환합니다.
<div id="ctl31_ctl10" style="height:100%;width:100%;overflow:auto;position:relative;">
Chrome의 Dev Tools ( )를 사용하여 제작 된 웹 페이지에서 수동으로 변경 overflow:auto
하여 Chrome에 대한 보고서를 볼 수 있습니다 .overflow:visible
F12
나는 Tim의 솔루션을 좋아 하며 쉽고 작동합니다.
그러나 여전히 문제가 있습니다. 사용자가 매개 변수를 변경할 때마다 (내 보고서에서 매개 변수를 사용합니다!) AJAX가 div를 새로 고치고 overflow : auto 태그가 다시 작성되고 스크립트가 변경되지 않습니다.
이 기술 노트 세부 사항 은 문제점에 대해 설명합니다.
이는 AJAX 패널로 빌드 된 페이지에서 전체 페이지를 새로 고치지 않고 AJAX 패널 만 상태를 변경하기 때문에 발생합니다. 따라서 태그에 OnLoad
적용한 이벤트 <body>
는 페이지가 처음로드 될 때 한 번만 실행됩니다. 그 후에 AJAX 패널을 변경해도 더 이상 이러한 이벤트가 트리거되지 않습니다.
사용자 einarq 가이 솔루션을 제안 했습니다 .
또 다른 옵션은 함수의 이름을 pageLoad로 바꾸는 것입니다. 이 이름을 가진 모든 함수는 페이지에있는 경우 asp.net ajax에 의해 자동으로 호출되며 각 부분 업데이트 이후에도 호출됩니다. 이렇게하면 body 태그에서 onload 속성을 제거 할 수도 있습니다.
그래서 솔루션에 표시된 개선 된 스크립트를 작성했습니다.