2012-06-18 55 views
1

我試過執行this example,但進程從不顯示。我的頁面沒有包含任何UpdatePanel或任何東西,這可能是爲什麼?ASP.Net客戶端模式進度指示器

在我的網頁聲明,我說:

<%@ 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函數,並且這包含調用Web服務的AJAX調用。

以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的div不會顯示出來,如果我不更改z-索引。

回答

1

根據MSDN,當更新UpdatePanel的內容時,UpdateProgress提供反饋。

我的頁面不包含任何UpdatePanels或任何東西,可能是 爲什麼?

總之,是的。

來源:UpdateProgress Class

上述鏈路有一個很好的例子。

+0

有道理。謝謝。發現了另一個使用純AJAX的例子,但仍然沒有運氣。我會用那個更新我的帖子。 – jmease

+0

我想我知道爲什麼那個現在不工作。對Web服務的AJAX調用處於循環狀態。所以也嘗試了ajaxComplete。 ajaxStart從不發射,或者在第一次完成循環時立即取消。 – jmease

+0

好的,請記住,UpdateProgress僅在部分回發(UpdatePanel)時纔有用。通過ajax調用web方法不一定會執行部分回發,這可能是您正在經歷的。我會想象你的Take 2例子會起作用,但是......結合你的z-index調整,我也會讓它可見或隱藏(以防z-索引是問題 - 我會仔細檢查如果我是你):'$('#element')。show()'或'$('#element')。hide()' – Jeremy