我尝试过实施this example,但进度从未显示过。我的页面不包含任何UpdatePanel或任何东西,这可能是为什么?
在我的页面声明中,我添加了:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
在头部元素中我添加了:
<script src="Scripts/jsUpdateProgress.js" type="text/javascript"></script>
我立即在表单标签内添加:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Panel ID="panelUpdateProgress" runat="server" CssClass="updateProgress">
<asp:UpdateProgress runat="server" ID="UpdateProg1" DisplayAfter="0">
<ProgressTemplate>
<div style="position:relative; top:30%; text-align: center;">
<img src="Processing.gif" style="vertical-align: middle" alt="Processing"/>
Processing...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</asp:Panel>
<ajaxToolkit:ModalPopupExtender runat="server" ID="ModalProgress" TargetControlID="panelUpdateProgress" BackgroundCssClass="modalBackground" PopupControlID="panelUpdateProgress"/>
我在最后一个表单标签后面添加了:
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginReq);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endReq);
var ModelProgress = '<%= ModalProgress.ClientID %>';
function beginReq(sender, args) {
$find(ModalProgress).show();
}
function endReq(sender, args) {
$find(ModalProgress).hide();
}
</script>
我希望显示进度的按钮:
<asp:Button runat="server" ID="submit" CssClass="multiViewTab" Text="Submit"/>
该按钮肯定会回发,因为在我的表格标签中我有:
onsubmit="return validateForm()"
validateForm运行。如果表单有效,validateForm也会启动submitForm函数,并且这包含对AJAX调用Web服务的JQuery调用。
拿2:
更简单和纯粹的AJAX,但仍然不起作用。
</form>
<script type='javascript'>
$(document).ready(function() {
$('body').append('<div id="ajaxBusy"><p><img src="Processing.gif"></p></div>');
$('#ajaxBusy').css("updateProgress");
});
$(document).ajaxStart(function () {
$('#ajaxBusy').css("z-index", 2);
}).ajaxStop(function () {
$('#ajaxBusy').css("z-index", -1);
});
我正在使用z-index,因为我有一个临时的“向导”,它本质上使用z-index显示/隐藏div,如果我没有更改z-index,则不会显示进度div。
答案 0 :(得分:1)
根据MSDN,UpdateProgress
会在更新UpdatePanel
的内容时提供反馈。
我的页面不包含任何UpdatePanel或任何东西,可能是这样 为什么呢?
简而言之,是的。
以上链接有一个很好的例子。