Сведения о вопросе

Drake

18:06, 7th August, 2020

Теги

SQL Reporting Services viewer for webpage-можно ли переместить кнопку Просмотр отчета?

Просмотров: 385   Ответов: 5

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



  Сведения об ответе

VERSUION

20:23, 3rd August, 2020

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

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


  Сведения об ответе

LAST

09:32, 1st August, 2020

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

<script type="text/javascript">
    $(document).ready(function() {
        $("#<%= ReportViewer1.ClientID %> td:first").attr("width", "1");
    });
</script>


  Сведения об ответе

ЯЯ__4

20:56, 13th August, 2020

Это своего рода хак, но вы можете переместить его в JavaScript. Просто посмотрите, что HTML генерирует ReportViewer, и напишите соответствующий код JavaScript, чтобы переместить кнопку. Я использовал JavaScript, чтобы скрыть кнопку (потому что нам нужна была наша собственная кнопка просмотра отчета). Любой код JavaScript, который манипулирует сгенерированным ReportViewer HTML, должен следовать за элементом управления ReportViewer на странице .aspx. Вот мой код для скрытия кнопки, чтобы дать вам представление о том, что вы будете делать:

function getRepViewBtn() {
  return document.getElementsByName("ReportViewer1$ctl00$ctl00")[0];
}

function hideViewReportButton() { // call this where needed
  var btn = getRepViewBtn();
  btn.style.display = 'none';
}


  Сведения об ответе

padenie

21:18, 23rd August, 2020

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

Я написал простую функцию cut and paste 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.

#ctl00_MainContent_MyReports_ctl04_ctl00 {
    margin: 0px 0px 0px 50px;
}


  Сведения об ответе

nYU

10:34, 26th August, 2020

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

    <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 в зависимости от имени элемента, присвоенного существующему элементу управления.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться