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

时间:2015-05-08 11:14:44

标签: javascript c# asp.net crystal-reports

我有一个带有Crystal Report Viewer Control的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> 

问题是这个点击事件在打印对话框打开之前触发&amp;在任何打印活动之前。 此外,当点击打印按钮时,观看者发起回发以获得报告内容&amp;打印到打印机。 所以这种做法不起作用。

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

修改: 为打印按钮生成的HTML :(由水晶报表查看器控件生成)

<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>

冒泡到它的运行时事件的屏幕截图: enter image description here

1 个答案:

答案 0 :(得分:0)

您将click事件绑定到tableid CrystalReportViewer1_toptoolbar_print,其中包含ID为IconImg_CrystalReportViewer1_toptoolbar_print的打印图像。我认为你需要将点击绑定到图像。

来自事件处理程序的

Return false将停止回发

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

    }
    return false;
});