ASP.net显示消息长时间的任务

时间:2012-10-11 19:28:31

标签: c# jquery asp.net database asynchronous

我正在尝试完成一些似乎不应该太难的东西,但我似乎无法找到一种有效的方法。

我从asp.net页面调用数据库上的存储过程。该过程可能需要一段时间,具体取决于有多少数据。

我只想显示一条消息,说明请等待任务完成。

问题是,我不知道在使用该消息更新页面后调用该过程的方法。无论我做什么,页面更新总是被数据库调用阻止。

我开始尝试使用多视图。用户单击按钮,我将视图更改为等待消息。我无法从这一点等待页面重新发布和更新,然后调用数据库过程。

2 个答案:

答案 0 :(得分:2)

您有几个选项,可以使用AJAX Control Toolkit和UpdateProgress控件,也可以使用jQuery并使用WebMethodWeb Service调用数据库调用。

<强> AJAX Control Toolkit

http://www.asp.net/ajax/documentation/live/overview/UpdateProgressOverview.aspx

<强> jQuery implementation

[WebMethod]
public void PerformDatabaseOperation() {
    // Your database code here
}

Web Method发送请求:

$.ajax({
  type: "POST",
  url: "./YourPage.aspx/PerformDatabaseOperation",
  error: function(XMLHttpRequest, textStatus, errorThrown){
      alert(textStatus);
  },
  success: function(result){
     alert("success");
  }
});

您必须拥有div作为邮件的占位符:

<div id="LoadingMessage">
   Please wait....
</div>

$('#LoadingMessage').hide()  
.ajaxStart(function() {
    $(this).show();
})
.ajaxStop(function() {
    $(this).hide();
});

每次执行数据库调用时,您都会看到加载消息。

答案 1 :(得分:1)

UpdateProgress控件简介

http://msdn.microsoft.com/en-us/library/bb386421%28v=vs.100%29.aspx

在本教程中,您将使用UpdateProgress控件显示部分页面更新的进度。如果页面包含UpdatePanel控件,您还可以包含UpdateProgress控件,以使用户了解部分页面更新的状态。您可以使用一个UpdateProgress控件来表示整个页面的部分页面更新的进度。或者,您可以为每个UpdatePanel控件包含UpdateProgress控件。本教程中都显示了这两种模式。