Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Crystal report打印后挂起向下钻取_Asp.net_Crystal Reports - Fatal编程技术网

Asp.net Crystal report打印后挂起向下钻取

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相同的

在使用crystal report viewer(版本13.0.2000.0)的我的ASP.NET应用程序中,当用户单击“打印”然后打印或取消打印时,当他们下一次深入报告时,它将永远挂起带有旋转三角圈动画的crystal对话框“请稍候,文档正在处理”

它在IE和Firefox中做到了这一点,但在Chrome中没有做到这一点:相反,打印按钮启动PDF导出,并显示“查看器必须导出为PDF才能打印”消息。这就是旧版本的crystal所做的


现在,我正在努力迫使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>

单击事件从主页复制两个视图状态,然后提交表单。我写这篇文章写得很快,如果有什么不清楚的地方,我向您道歉。

当您单击“下一页”或“上一页”按钮时,它也会挂起。我还需要解决这个问题。单击下一页或上一页按钮时,它也会挂起。我还需要解决这个问题。