Javascript 将客户端单击事件绑定到Asp.NET中Crystal Report Viewer控件的打印按钮

Javascript 将客户端单击事件绑定到Asp.NET中Crystal Report Viewer控件的打印按钮,javascript,c#,asp.net,crystal-reports,Javascript,C#,Asp.net,Crystal Reports,我有一个带有Crystal Report Viewer控件的ASP.NET页面 向客户端呈现报告时,客户端单击(crystalReportviewer控件的)打印按钮, 我想在打印结束后向用户发送一条消息,询问报告是否正确打印(调用服务器/在日志中上载等) Aspx的相关代码为: <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" GroupTreeImagesFolderUrl=""

我有一个带有Crystal Report Viewer控件的ASP.NET页面

向客户端呈现报告时,客户端单击(crystalReportviewer控件的)打印按钮, 我想在打印结束后向用户发送一条消息,询问报告是否正确打印(调用服务器/在日志中上载等)

Aspx的相关代码为:

<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" 
            GroupTreeImagesFolderUrl="" Height="1202px" 
            ReuseParameterValuesOnRefresh="True" EnableDatabaseLogonPrompt="false"
            ToolbarImagesFolderUrl="" ToolPanelWidth="200px" Width="1104px" />

& 页面底部的脚本

<script>
    document.getElementById("CrystalReportViewer1_toptoolbar_print").addEventListener("click", function () {
        var x = confirm("Did The Report Print properly ?");
        if (x) {
            //Do something...

        }
    });

</script> 

document.getElementById(“CrystalReportViewer1\u toptoolbar\u print”).addEventListener(“单击”,函数)(){
var x=确认(“报告打印正确吗?”);
if(x){
//做点什么。。。
}
});
问题在于,此单击事件在“打印”对话框打开之前和任何打印活动之前触发。 此外,单击“打印”按钮时,查看器将触发回发,以获取报告内容并打印到打印机。 所以这种方法不起作用。

有任何选项可以实现此功能吗

编辑: 为打印按钮生成的HTML:(由crystal report viewer控件生成)


一个运行时事件的屏幕截图出现在屏幕上:

您正在将单击事件绑定到具有id
CrystalReportViewer1\u toptoolbar\u print的表,该表包含id为IConing\u CrystalReportViewer1\u toptoolbar\u print的打印图像。我认为您需要将单击绑定到图像

从事件处理程序返回false
将停止回发


您确定要绑定事件的控件具有id CrystalReportViewer1\u toptoolbar\u print吗?我使用firefox调试器进行了检查然后添加了它。那么为什么它会在您预期的时间之前触发,如在OP中“问题是此单击事件在打印对话框打开之前触发&在任何打印活动之前”?这是我无法理解的。我的预期是,我的事件将在报告按钮事件之后触发,但相反的情况正在发生。您能给我们显示生成的相关html吗?这不起作用。但在打印之前,确认仍会被触发。我认为更大的图片是由查看器打开打印窗口的回发。按control F5键重建网站etcdid是否删除以前的javascript代码?查看生成的html以查看是否有此文件,document.getElementById(“IconImg_CrystalReportViewer1_toptoolbar_print”)然后缺少一些内容,您是否可以将生成的html/javascript打开?恐怕我无法在JSFIDLE中重现此问题,因为我看不到添加服务器端控件(aspx/crystal viewer)或加载crystal报表的范围。
<table id="CrystalReportViewer1_toptoolbar_print" class="toolbar_button_default" cellspacing="0" cellpadding="0" border="0" role="button" style="height: 22px; margin: 1px; display: block; cursor: pointer;" tabindex="0" title="Print this report">

    <tbody>
        <tr valign="middle">
            <td>
                <div style="overflow:hidden;height:20px;width:20px;cursor:pointer">
                    <img id="IconImg_CrystalReportViewer1_toptoolbar_print" width="16" vspace="0" hspace="0" height="16" border="0" style="float: left; background-image: url("aspnet_client/system_web…ckground-position: -3px -25px; margin: 2px; cursor: pointer;" alt="Print this report" src="aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/../dhtmllib/images/skin_standard/../transp.gif"></img>
                </div>
            </td>
        </tr>
    </tbody>

</table>
document.getElementById("IconImg_CrystalReportViewer1_toptoolbar_print").addEventListener("click", function () {
    var x = confirm("Did The Report Print properly ?");
    if (x) {
          //Do something...

    }
    return false;
});