1

单击framedialog内容页面内的下载按钮后,我需要关闭下载窗口(使用jquery framedialog打开)。我正在创建一个单独的 iframe 来发送下载文件作为响应:(Download.aspx 根据文件 ID 将文件发送到客户端)

var script = @"<script language=JavaScript>function Export(fileID)
                            {
                                    var iframe = document.createElement('iframe');
                                    iframe.src = 'DownloadForm.aspx?ID='+ fileID;
                                    iframe.style.display = 'none';
                                    document.body.appendChild(iframe);
                                    //alert('AlertBox'); 
                            }
                            </script>"; 
Page.ClientScript.RegisterStartupScript(typeof(string), "Startup", script);  

完成下载后,我将关闭下载窗口。但我的问题是,如果我使用注释的 alertBox,那么我的两个代码都可以正常工作(下载并关闭)。但我希望它在没有警报框的情况下发生。当我不使用警告框时,不会调用 Download.aspx 页面。(我认为脚本在我注册时不会发送到客户端,并且警报框正在让它做某事)..不知道它为什么会发生..请帮助..提前谢谢

4

4 回答 4

1

试试这个

Page.ClientScript.RegisterStartupScript(getType(), "Startup", script, true); 
于 2013-02-07T10:35:26.127 回答
1

您可以改为使用:

ScriptManager.RegisterStartupScript(this, GetType(), "StartupScript", script, true);

在哪里script

var script = @"function Export(fileID)
                            {
                                    var iframe = document.createElement('iframe');
                                    iframe.src = 'DownloadForm.aspx?ID='+ fileID;
                                    iframe.style.display = 'none';
                                    document.body.appendChild(iframe);
                                    //alert('AlertBox'); 
                            }
                            //Export(YourFileIDHere);"; 

但是,您还应该注意,代码仅定义了要包含在脚本中的函数。您不要在 JS 代码中的任何地方调用此函数。(所以我已经包含了一个注释代码,可以取消注释以执行函数,使用适当的fileID.

于 2013-02-07T10:39:02.483 回答
1

用这个..

Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "function   name", true);

对于您的情况,它将是。

Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "Export(file Id);", true);
于 2013-02-07T10:44:18.857 回答
1

我找到了解决我的问题的方法。基本上我在客户端完成下载之前关闭了下载窗口。所以,我在下载窗口的父页面中添加了下载(隐藏)文件的框架,然后我关闭了下载窗口

于 2013-02-08T05:50:39.740 回答