如何在 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(以上是关于如何在 reportviewer 控件上从 asp.net 调用打印?的主要内容,如果未能解决你的问题,请参考以下文章
C# + asp.Net + 自定义 Sybase SessionState 提供程序 + ReportViewer = 一些报告崩溃