我正在尝试完成一些似乎不应该太难的东西,但我似乎无法找到一种有效的方法。
我从asp.net页面调用数据库上的存储过程。该过程可能需要一段时间,具体取决于有多少数据。
我只想显示一条消息,说明请等待任务完成。
问题是,我不知道在使用该消息更新页面后调用该过程的方法。无论我做什么,页面更新总是被数据库调用阻止。
我开始尝试使用多视图。用户单击按钮,我将视图更改为等待消息。我无法从这一点等待页面重新发布和更新,然后调用数据库过程。
答案 0 :(得分:2)
您有几个选项,可以使用AJAX Control Toolkit
和UpdateProgress控件,也可以使用jQuery
并使用WebMethod
或Web 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控件。本教程中都显示了这两种模式。