Средство просмотра служб отчетов SQL для веб-страницы - можете ли вы переместить кнопку «Просмотреть отчет»? - PullRequest
5 голосов
/ 21 августа 2008

Используя средство просмотра для отображения отчетов служб отчетов SQL на веб-странице (Microsoft.ReportViewer.WebForms), можете ли вы переместить кнопку «Просмотреть отчет»? По умолчанию используется самая правая сторона отчета, что означает, что вам нужно прокрутить весь экран до того, как кнопка станет видимой. Не проблема для отчетов, которые соответствуют ширине окна, но для очень широких отчетов это быстро проблема.

Ответы [ 5 ]

3 голосов
/ 21 августа 2008

Нет, вы не можете изменить положение кнопки просмотра отчета в элементе управления ReportViewer.

Однако вы можете создать свой собственный элемент управления просмотром отчетов. Элемент управления будет состоять из полей для параметров отчета и кнопки для генерации отчета. Когда пользователь нажимает кнопку, вы можете создать отчет в фоновом режиме. Вы можете отобразить отчет в формате PDF, HTML и т. Д.

2 голосов
/ 04 декабря 2009

Причина, по которой кнопка нажимается вправо, заключается в том, что td для параметров имеет ширину = "100%". Я решаю эту проблему с помощью следующего jquery. Он просто изменяет ширину параметров td до 1. Браузеры самостоятельно увеличивают ширину до ширины содержимого элемента. Надеюсь, это поможет.

<script type="text/javascript">
    $(document).ready(function() {
        $("#<%= ReportViewer1.ClientID %> td:first").attr("width", "1");
    });
</script>
2 голосов
/ 20 мая 2009

Это что-то вроде хака, но вы можете переместить его в 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';
}
1 голос
/ 02 декабря 2014

Так как я искал этот ответ только вчера, я решил опубликовать то, что придумал, чтобы решить нашу проблему. Наши отчеты стали широко распространяться, и мы хотели, чтобы кнопка «Просмотр отчетов» существовала в левой части элемента управления, чтобы не было необходимости прокручивать ее, чтобы перейти к кнопке. Мне нужно было зайти в источник отрендеренного файла, чтобы найти имена идентификаторов кнопки и целевой таблицы.

Я написал простую функцию javascript для вырезания и вставки, чтобы вытащить кнопку из ее первоначального положения и, по сути, поместить ее в следующую строку в таблице с данными под датчиками.

function moveButton() {
  document.getElementById('ParameterTable_ctl00_MainContent_MyReports_ctl04').appendChild(document.getElementById('ctl00_MainContent_MyReports_ctl04_ctl00'));
        }

Эта функция вызывается при событии загрузки средства просмотра отчетов.

ScriptManager.RegisterStartupScript(Me, Me.GetType(), "moveButton", "moveButton();", True)

Чтобы настроить положение, я использовал CSS ID.

#ctl00_MainContent_MyReports_ctl04_ctl00 {
    margin: 0px 0px 0px 50px;
}
0 голосов
/ 15 октября 2018

У меня была та же проблема, и в итоге я использовал расширение для ответа Трэвиса Коллинза; Помимо изменения ширины столбца таблицы, я также выравниваю кнопку «Просмотр отчета» влево, чтобы она была ближе к остальным элементам управления.

    <script type="text/javascript">
  $(document).ready(function() {
     $("#_ctl0_MainContent_reportViewer_fixedTable tr:first td:first-child").attr("width", "1"); 
     $("#_ctl0_MainContent_reportViewer_fixedTable tr:first td:last-child").attr("align", "left");   
  });
</script>

Вам может потребоваться настроить селектор JQuery в зависимости от именования элементов, назначенного существующему элементу управления.

...