Как вызвать print из asp.net на элементе управления Reportviewer?

Я использую ssrs с управлением asp.net reportviewer для отображения отчетов сервера. Мы хотим покончить с панелью инструментов, потому что она не соответствует нашему внешнему виду и ощущениям, но мы хотим сохранить некоторые функциональные возможности, с чем я сталкиваюсь - это печать. Есть ли способ вызвать тот же диалог печати, что и кнопка печати на этой панели инструментов со страницы asp.net?

http://msdn.microsoft.com/en-us/library/ms252091(v=VS.80).aspx

Это самое близкое, что я нашел, однако я не использую локальные отчеты (поэтому было бы целесообразно, если бы где-то была встроенная функция), и он пропускает диалоговую часть принтера, что недопустимо. Я не верю, что могу вызвать printdialog winforms на странице asp.net, но я не пытался это сделать. Любая помощь приветствуется.

1 ответ

Решение

Вот скрипт для вызова диалогового окна печати:

<script language="javascript"> 
         function PrintReport() { 
             var viewerReference = $find("ReportViewer1");

             var stillonLoadState = clientViewer.get_isLoading();

             if (!stillonLoadState ) { 
                 var reportArea = viewerReference .get_reportAreaContentType(); 
                 if (reportArea == Microsoft.Reporting.WebFormsClient.ReportAreaContent.ReportPage) { 
                     $find("ReportViewer1").invokePrintDialog(); 
                 } 
             } 
         } 
     </script>

Чтобы вызвать, просто позвоните PrintReport()

Подробное объяснение здесь: http://blogs.msdn.com/b/selvar/archive/2011/04/09/invoking-the-print-dialog-for-report-viewer-2010-control-using-the-javascript-api.aspx

Другие вопросы по тегам