检测excel对话框何时出现并发出javascript命令

时间:2013-03-27 15:54:02

标签: javascript jquery asp.net extjs export-to-excel

我有一个“加载消息”,我已经出现并在asp.net应用程序中消失了。一个新的要求是,当单击链接按钮时,会出现加载消息,然后假设当excel对话框弹出打开或保存或取消(excel文件)时它会消失。

如何检测此对话框?回发发生,我正在使用Response.End,但似乎我无法让“加载覆盖层在与excel对话框交互后消失。”

这是在ASP.NET 3.5 / EXT JS(EXT.NET)中发生的,但我可以使用jQuery,就像在这个项目中一样。我和Fiddler玩过,但是我在DOM中提升事件和检测方面有点生疏。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我可能会在一段时间内遇到同样的问题。这是堆栈帖子......

Download a file and update panel progress

如果您在此页面后面的代码中执行长时间运行的工作,您的更新面板将按预期运行..事件的生命周期可能是这样的。

  1. btnEvent获取/构建excel文件。
  2. 在btn事件后面的代码中执行构建/获取excel文件并将其存储在缓存中的工作...然后将iframe的源设置为提供excel作为下载(从缓存)的页面。更新面板一直显示进度html。
  3. 当html刷新时,加载面板将消失,下载文件提示应显示在iframe中。
  4. 我没有必要编写任何javascript来使用更新面板来完成这项工作。

    <asp:UpdateProgress ID="progress1" runat="server" AssociatedUpdatePanelID="up">
        <ProgressTemplate>
            <div id="processMessage">
                <table width="100%">
                    <tr>
                        <td>
                            Loading...
                        </td>
                        <td>
                            <img alt="Please wait..." src="../Images/spinner.gif" />
                        </td>
                    </tr>
                </table>
            </div>
        </ProgressTemplate>
    </asp:UpdateProgress>
    
    
    <asp:UpdatePanel runat="server" ID="up">
        <ContentTemplate>
                <div id="excel" align="right">
                    <asp:Button runat="server" ID="btnExcelExport" Text="Export to Excel" OnClick="btnExcelExport_Click" />
                </div>
                <iframe runat="server" id="ifmExcel" width="0" height="0" marginheight="0" marginwidth="0" frameborder="0" />
        </ContentTemplate>
    </asp:UpdatePanel>
    

    你完全可以使用javascript和ajax调用,使用beforeSend和complete事件来显示工作完成时的微调器,然后在完成后更改iframe的src attr,启动下载。

    希望这有帮助。