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