Asp.net Crystal report打印后挂起向下钻取
在使用crystal report viewer(版本13.0.2000.0)的我的ASP.NET应用程序中,当用户单击“打印”然后打印或取消打印时,当他们下一次深入报告时,它将永远挂起带有旋转三角圈动画的crystal对话框“请稍候,文档正在处理” 它在IE和Firefox中做到了这一点,但在Chrome中没有做到这一点:相反,打印按钮启动PDF导出,并显示“查看器必须导出为PDF才能打印”消息。这就是旧版本的crystal所做的Asp.net Crystal report打印后挂起向下钻取,asp.net,crystal-reports,Asp.net,Crystal Reports,在使用crystal report viewer(版本13.0.2000.0)的我的ASP.NET应用程序中,当用户单击“打印”然后打印或取消打印时,当他们下一次深入报告时,它将永远挂起带有旋转三角圈动画的crystal对话框“请稍候,文档正在处理” 它在IE和Firefox中做到了这一点,但在Chrome中没有做到这一点:相反,打印按钮启动PDF导出,并显示“查看器必须导出为PDF才能打印”消息。这就是旧版本的crystal所做的 现在,我正在努力迫使IE和Firefox做与chrome相同的
现在,我正在努力迫使IE和Firefox做与chrome相同的事情,但是如果有一个真正的解决打印问题的方法,我宁愿使用它。似乎当用户单击“打印”(vs.导出)时,他们想要打印(vs.导出)。我想出了一个解决方法。由于Crystal Reports不允许覆盖按钮,我最终隐藏了打印按钮,并使用JavaScript/jQuery添加了我自己的打印按钮 下面是一些关于印刷工作原理的秘密信息。当您按下打印按钮时,它会使用视图状态和事件参数进行回发。回发将返回一个PDF文件,浏览器将以内联方式打开该文件。PDF文件嵌入了打印命令,该命令在文件打开时执行 所以我们可以使用一个隐藏的IFRAME来加载可打印的PDF。这样主页就不会受到影响。我认为PDF内联加载是导致页面/浏览器损坏其状态的原因 将下面的代码放在ASPX页面的顶部。必须将其放在页面顶部,否则如果将其放在底部,打印对话框将脱离屏幕 以下是HTML:
<iframe id="HiddenFrame" name="HiddenFrame" style="display: none;"></iframe>
<form id="PrintForm" action="MyPage.aspx" method="post" target="HiddenFrame">
<!-- Change the name if your object is not named 'CrystalReportViewer1' -->
<input type="hidden" name="__CRYSTALSTATECrystalReportViewer1" id="CRState" />
<input type="hidden" name="__VIEWSTATE" id="VState" />
<!-- Change this value to match your CrystalReportViewer object's name. -->
<input type="hidden" name="__EVENTTARGET" value="CrystalReportViewer1" />
<!-- This is the print command that is sent. -->
<input type="hidden" name="__EVENTARGUMENT" value='{"text":"PDF", "range":"false", "tb":"crpdfprint"}' />
</form>
单击事件从主页复制两个视图状态,然后提交表单。我写这篇文章很快,所以如果我有什么不清楚的地方,我很抱歉。我想出了一个解决办法。由于Crystal Reports不允许覆盖按钮,我最终隐藏了打印按钮,并使用JavaScript/jQuery添加了我自己的打印按钮 下面是一些关于印刷工作原理的秘密信息。当您按下打印按钮时,它会使用视图状态和事件参数进行回发。回发将返回一个PDF文件,浏览器将以内联方式打开该文件。PDF文件嵌入了打印命令,该命令在文件打开时执行 所以我们可以使用一个隐藏的IFRAME来加载可打印的PDF。这样主页就不会受到影响。我认为PDF内联加载是导致页面/浏览器损坏其状态的原因 将下面的代码放在ASPX页面的顶部。必须将其放在页面顶部,否则如果将其放在底部,打印对话框将脱离屏幕 以下是HTML:
<iframe id="HiddenFrame" name="HiddenFrame" style="display: none;"></iframe>
<form id="PrintForm" action="MyPage.aspx" method="post" target="HiddenFrame">
<!-- Change the name if your object is not named 'CrystalReportViewer1' -->
<input type="hidden" name="__CRYSTALSTATECrystalReportViewer1" id="CRState" />
<input type="hidden" name="__VIEWSTATE" id="VState" />
<!-- Change this value to match your CrystalReportViewer object's name. -->
<input type="hidden" name="__EVENTTARGET" value="CrystalReportViewer1" />
<!-- This is the print command that is sent. -->
<input type="hidden" name="__EVENTARGUMENT" value='{"text":"PDF", "range":"false", "tb":"crpdfprint"}' />
</form>
单击事件从主页复制两个视图状态,然后提交表单。我写这篇文章写得很快,如果有什么不清楚的地方,我向您道歉。当您单击“下一页”或“上一页”按钮时,它也会挂起。我还需要解决这个问题。单击下一页或上一页按钮时,它也会挂起。我还需要解决这个问题。