Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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
C# 如何从web浏览器的打印弹出窗口中知道单击(确定或取消)事件_C#_Javascript - Fatal编程技术网

C# 如何从web浏览器的打印弹出窗口中知道单击(确定或取消)事件

C# 如何从web浏览器的打印弹出窗口中知道单击(确定或取消)事件,c#,javascript,C#,Javascript,在我的应用程序中,我通过一个弹出窗口打印一些数据。加载弹出窗口时,将提示用户进行打印或取消。我想知道单击了哪个按钮(打印或取消),以便我可以根据单击的按钮采取一些操作。下面给出了代码和屏幕截图 public void Print(int Id) { StringBuilder sb = BadgeHelper.preparePrintableString(Id); string printWindowFunc = "function

在我的应用程序中,我通过一个弹出窗口打印一些数据。加载弹出窗口时,将提示用户进行打印或取消。我想知道单击了哪个按钮(打印或取消),以便我可以根据单击的按钮采取一些操作。下面给出了代码和屏幕截图

public void Print(int Id)
        {
            StringBuilder sb = BadgeHelper.preparePrintableString(Id);
            string printWindowFunc = "function printWindow() {\n" +
                                        "var z = window.print();\n alert('Return: ' + z);\n" + 
                                        "checkDocumentState();\n" +
                                      "}";
            string checkDocumentStateFunc = "function checkDocumentState() {\n" +
                                                "if (document.readyState == 'complete') {\n" +
                                                    "window.close();\n" +
                                                "}\n" +
                                                "else {\n alert('Else');\n" +
                                                    "setTimeout('checkDocumentState()', 2000);\n" +
                                                "}\n"+
                                            "}\n";

            string startingHTMLCode = "<html>\n" +
                                        "<head>\n" +
                                            "<script type='text/javascript'>\n " +
                                                checkDocumentStateFunc + 
                                                "\n" +
                                                printWindowFunc +
                                            "</script>\n " + 
                                        "</head>\n" +
                                        "<body onload='printWindow();'>\n";
            sb.Insert(0, startingHTMLCode);
            sb.Append("\n</body>\n</html>");

            Response.Write(sb.ToString());
        }
公共作废打印(int-Id)
{
StringBuilder sb=BadgeHelper.preparePrintableString(Id);
字符串printWindowFunc=“函数printWindow(){\n”+
“var z=window.print();\n警报('Return:'+z);\n”+
“checkDocumentState();\n”+
"}";
字符串checkDocumentStateFunc=“函数checkDocumentState(){\n”+
“如果(document.readyState=='complete'){\n”+
“window.close();\n”+
“}\n”+
“else{\n警报('else');\n”+
setTimeout('checkDocumentState()',2000);\n+
“}\n”+
“}\n”;
字符串startingHTMLCode=“\n”+
“\n”+
“\n”+
checkDocumentStateFunc+
“\n”+
printWindowFunc+
“\n”+
“\n”+
“\n”;
sb.插入(0,开始HTMLCODE);
sb.追加(“\n\n”);
写(某人写的东西);
}

检查这个:好问题,尽管我认为这是1)从“公平”js不可能2)不应该真的这样做(这是我个人对过于智能和活跃的界面的憎恨)。
onbeforeprint/onafterprint
不允许检查打印状态,以及返回
window.print
的结果。作为旁注,你不应该像这样把javascript放在C代码中,这是一种反模式。这个问题与C完全无关。