如何在 reportviewer 控件上从 asp.net 调用打印?

Posted

技术标签:

【中文标题】如何在 reportviewer 控件上从 asp.net 调用打印?【英文标题】:How to call print from asp.net on a reportviewer control? 【发布时间】:2010-08-17 16:30:50 【问题描述】:

我正在使用带有 asp.net reportviewer 控件的 s-s-rs 来显示服务器报告。我们想取消工具栏,因为它不符合我们的外观和感觉,但我们想保留一些功能,我正在努力解决的一点是打印。有什么方法可以从 asp.net 页面调出与该工具栏上的打印按钮相同的打印对话框?

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

是我找到的最接近的,但是我没有使用本地报告(所以如果在某个地方有内置功能会很有意义),它会跳过打印机对话框部分,这是不可接受的。我不相信我真的可以在 asp.net 页面上调用 winforms printdialog,但这不是我尝试过的。 任何帮助将不胜感激。

【问题讨论】:

【参考方案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

【讨论】:

Joel,安装 Reporting Services 插件后,这对我在 IE 上有效。但是,我无法让它在 Chrome 上运行,没有安装插件的提示。有什么建议吗? Joel,在访问了msdn博客链接后,我阅读了cmets,发现这些JS API仅适用于支持active-x的浏览器。 据我记得,虽然我使用这个控件已经有一段时间了,但在非 IE 浏览器中打印可能无法工作。此链接似乎表明:msdn.microsoft.com/en-us/library/ms251673.aspx. 是的,看起来很像。我正在使用 '$find("ReportViewer1").exportReport()' 和用户稍后打印导出的文件。 Doco for Microsoft.Reporting.WebFormsClient.ReportViewer: docs.microsoft.com/en-us/previous-versions/visualstudio/…

以上是关于如何在 reportviewer 控件上从 asp.net 调用打印?的主要内容,如果未能解决你的问题,请参考以下文章

C# + asp.Net + 自定义 Sybase SessionState 提供程序 + ReportViewer = 一些报告崩溃

如何解决从VS2010到VS2015的reportviewer问题

C#,reportviewer控件,怎么填充整个窗口

c#的reportViewer控件

如何设置REPORTVIEWER控件工具条显示中文

SQL Reporting Services ReportViewer 的多个版本