<asp.net>在文件创建期间显示等待对话框,并在下载完成后隐藏它</asp.net>

时间:2010-06-22 15:14:39

标签: c# asp.net asp.net-ajax modal-dialog

我有一个自动生成文件并将其发送到Response的页面。我需要在文件创建期间显示一个Dialog,并在浏览器下载对话框出现后隐藏。 有什么建议吗?

谢谢! :)

3 个答案:

答案 0 :(得分:1)

你可以显示一个很好的叠加忙信息。

加价部分:

$(function() { // when document has loaded

    ($.unblockUI); //unlock UI

    //Show busy message on click event and disable UI
    $('#btnHelloWorld').click(function() {
    $.blockUI({ message: '<h4><img src="busy.gif" />Please wait...</h4>' });

    });

});

<asp:Button ID="btnHelloWorld" runat="server" Text="Hello World" /><br/>

背后的代码:

   Protected Sub btnHelloWorld_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnHelloWorld.Click
        Label1.Text = "Hello World"
        Threading.Thread.Sleep(5000)
    End Sub

查看jQuery BlockUI Plugin

答案 1 :(得分:0)

我使用Telerik RadControls for ASP.NET AJAX套件中的RadProgressArea控件来报告长时间运行操作的进度。它适用于该场景,因为它轮询状态更新的过程。

答案 2 :(得分:0)

添加科林的回复:

您可以在此处找到RadProgressArea的演示:

http://demos.telerik.com/aspnet-ajax/upload/examples/customprogress/defaultcs.aspx

ProgressArea与RadProgressManager一起使用,以轮询服务器进程并更新客户端UI。 ProgressManager有一个客户端API,允许您通过JavaScript启动和隐藏进度区域:

http://www.telerik.com/help/aspnet-ajax/upload_clientsideradprogressmanager.html

还有一个在线演示,向您展示如何将ProgressArea放置在RadWindow中(您的要求中的“对话框”):

http://www.telerik.com/support/kb/aspnet-ajax/window/using-radupload-progress-area-in-radwindow.aspx

ProgressManager / Area最终使用HttpHandler来促进进度更新,如果您在webfarm中,该技术确实需要“粘性会话”。希望有所帮助。