3

我正在尝试完成一些看起来不应该太难的事情,但我似乎找不到有效的方法。

我正在从 asp.net 页面调用数据库上的存储过程。该过程可能需要一些时间,具体取决于那里的数据量。

我想做的只是显示一条消息,说请在任务完成时稍候。

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

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

4

2 回答 2

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();
});

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

于 2012-10-11T19:34:25.977 回答
1

UpdateProgress 控件简介

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

In this tutorial you will use UpdateProgress controls to display the progress of partial-page updates. If a page contains UpdatePanel controls, you can also include UpdateProgress controls to keep users informed about the status of partial-page updates. You can use one UpdateProgress control to represent the progress of partial-page updates for the whole page. Alternatively, you can include an UpdateProgress control for every UpdatePanel control. Both of these patterns are shown in this tutorial.

于 2012-10-11T19:35:33.833 回答