1

我试过实现这个例子,但进度永远不会显示。我的页面不包含任何 UpdatePanel 或任何内容,这可能是为什么?

在我的页面声明中,我添加了:

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

在我添加的 head 元素内:

<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 将不会显示。

4

1 回答 1

1

根据 MSDN,在更新UpdateProgress内容时提供反馈UpdatePanel

我的页面不包含任何 UpdatePanel 或任何内容,这可能是为什么?

简而言之,是的。

来源:UpdateProgress 类

上面的链接有一个很好的例子。

于 2012-06-18T18:53:20.133 回答