我有一个自动生成文件并将其发送到Response的页面。我需要在文件创建期间显示一个Dialog,并在浏览器下载对话框出现后隐藏。 有什么建议吗?
谢谢! :)
答案 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
答案 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中,该技术确实需要“粘性会话”。希望有所帮助。