【问题标题】:How to change the database if printed?如果打印,如何更改数据库?
【发布时间】:2021-08-25 13:56:52
【问题描述】:

我有一个打印按钮

<input type = "button" onclick = "printDiv ('printableArea')" class = "button1" value = "Print" />


<script>
    function printDiv (divName) {
        var printContents = document.getElementById (divName) .innerHTML;
        var originalContents = document.body.innerHTML;

        document.body.innerHTML = printContents;

        window.print ();

        document.body.innerHTML = originalContents;
    }
</script>

然后它发送到打印操作。

客户目前可以选择打印或取消。

如果客户按下打印按钮,是否有办法访问后面的代码? (我想更改客户端已经打印的数据库...)

问候

【问题讨论】:

    标签: asp.net-core


    【解决方案1】:

    如果客户按下打印按钮,有没有办法访问后面的代码?

    请注意,我们无法直接检测用户是否通过 html 页面中的 JS 代码在打印对话框中单击了“打印”或“取消”按钮。

    此 SO 线程中讨论的类似问题:How to capture the click event on the default print menu called by Javascript window.print()?

    作为一种解决方法,您可以尝试显示一个提示对话框以确认打印是否完成,然后在引发afterprint event 后向后端请求更新数据库,如下所示。

    window.onafterprint = function () {
        var message = "Have you printed the page(s)?";
        var result = window.prompt(message,"yes");
        if (result=="yes") {
            //...
            //make ajax request to backend 
            //...
        }
    };
    

    【讨论】:

      【解决方案2】:

      您可以向 MVC 操作添加 GET 请求,例如(在 jQuery 中):

      
      ...
      document.body.innerHTML = printContents;
      
      var clientId = $("#clientId").val();
      $.get("@Url.Action("SavePrinted", "Client")", { clientId: clientId });
      
      window.print();
      ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多