Універсальне рішення (працює і в 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
: у моєму випадку воно (замість цього знайдено azzlak SQL Server 2012 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
Сторінка HTML, створена звітами SSRS 2008 R2, містить div, який має переповнення: автоматичний стиль, і він перетворює звіт у невидимий звіт.
<div id="ctl31_ctl10" style="height:100%;width:100%;overflow:auto;position:relative;">
...</div>
Зміна вручну (за допомогою вікна налагодження Chrome) остаточне переповнення HTML : автоматично в переповненні: видиме Я бачу звіти в Chrome.
Я люблю рішення Тіма ; це легко і ефективно.
Але проблема все ще є: Щоразу, коли користувач змінює параметри (мої звіти використовують параметри!), AJAX оновлює div, переповнення: автоматичний тег перезаписується, і жоден сценарій його не змінює.
Ця детальна інформація пояснює, в чому проблема.
Це трапляється тому, що на сторінці, побудованій з панелями AJAX, лише панелі AJAX змінюють свій стан, не оновлюючи всю сторінку. Отже, події OnLoad, які ви застосували до тегу, запускаються лише один раз: при першому завантаженні вашої сторінки. Після цього зміна будь-якої панелі AJAX більше не спричинить ці події.
Mr.einarq запропонував мені рішення тут .
Інший варіант - перейменувати свою функцію в pageLoad.
Будь-які функції з цим іменем будуть автоматично викликані ASP.NET Ajax, якщо вони існують на сторінці, також після кожного часткового оновлення. Якщо ви зробите це, ви також можете видалити атрибут onload з тегу body
Тож я написав вдосконалений сценарій, який показано в рішенні.