Я столкнулся с этой проблемой довольно часто, поэтому я сделал для нее решение JS. Это в основном регулирует высоту domElement по ширине элемента по указанному вами соотношению. Вы можете использовать его следующим образом:
Имейте в виду, что поскольку он устанавливает высоту элемента, элемент должен быть либо display:block
, либо display:inline-block
.
Это своего рода хак, но вы можно переместить в JavaScript. Просто посмотрите, какой HTML-код генерирует ReportViewer, и напишите соответствующий код JavaScript для перемещения кнопки. Я использовал JavaScript, чтобы скрыть кнопку (потому что нам нужна была собственная кнопка View Report). Любой код JavaScript, который управляет сгенерированным HTML-кодом ReportViewer, должен располагаться после элемента управления ReportViewer на странице .aspx. Вот мой код для скрытия кнопки, чтобы дать вам представление о том, что вы будете делать:
function getRepViewBtn() {
return document.getElementsByName("ReportViewer1$ctl00$ctl00")[0];
}
function hideViewReportButton() { // call this where needed
var btn = getRepViewBtn();
btn.style.display = 'none';
}
Нет, Вы не можете изменить местоположение кнопки отчета о представлении в управлении ReportViewer.
Однако Вы могли создать свой собственный отчет, просматривающий управление. Управление состояло бы из полей для параметров отчета и кнопки для генерации отчета. Когда пользователь нажимает кнопку, Вы могли генерировать отчет в фоновом режиме. Вы могли отобразить отчет как PDF, HTML, и т.д.
Причина, по которой кнопка сдвинута вправо, заключается в том, что td для параметров имеет ширину = "100%". Я решаю эту проблему с помощью следующего jquery. Он просто изменяет ширину параметра td на 1. Браузеры сами расширяют ширину до ширины содержимого элемента. Надеюсь, это поможет.
<script type="text/javascript">
$(document).ready(function() {
$("#<%= ReportViewer1.ClientID %> td:first").attr("width", "1");
});
</script>