2015-09-02 36 views
0

我的應用程序中有一個報告頁面,當按下按鈕時沒有任何跡象表明報告正在運行。所以我想添加一些指標,有點像Access中的舊沙漏鼠標光標。但我決定嘗試使用JQuery進度條代替。JQuery進度條顯示頁面上正在發生的事情

我去了官方的JQuery Progress Bar頁面,發現了一些代碼可以集成到我的項目中。我有這樣的ASPX頁面上:

在標題:

<!--//********************************** 
    // Test Indeterminate Progress Bar 
    //********************************** --> 
<script type="text/javascript"> 
    //Total out of range dialog 
    $(function() { 
     $("#progressbar").progressbar({ 
      value: false 
     }); 
     $("button").on("click", function (event) { 
      var target = $(event.target), 
       progressbar = $("#progressbar"), 
       progressbarValue = progressbar.find(".ui-progressbar-value"); 
       progressbar.progressbar("option", "value", false); 
     }); 
    }); 

</script> 
<style> 
    #progressbar .ui-progressbar-value {  
     background-color: #ccc; } 
</style> 

在機身:

<div id="progressbar" style="visibility:hidden"></div> 

所以,現在,我很期待做是在一個按鈕的OnClick事件中的代碼隱藏中進行一些調用,以使進度條可見,然後當代碼完成運行時,我再次使其不可見。

首先,這是正確的假設嗎?其次,我將如何做到這一點?智能感知不會將「進度欄」識別爲對象。

+2

你的假設是不正確的。您不能直接在代碼後面更新UI,在服務器上運行代碼並在服務器向瀏覽器返回更新頁面時發生UI更新,JavaScript在瀏覽器中運行。如果你想在UIU上的服務器和進度條上發生事情,你需要對Web服務進行ajax調用。有一些hacky ajax控件可以用於這個'UpdatePanel'和'UpdateProgress',它們很笨重,但是爲你生成所有的客戶端代碼。 –

+0

同意不正確的假設。最好的方法是創建一個通過UI調用的服務(在你的情況下是jQuery)並執行更新。以下是可能有所幫助的兩個示例: http://jqueryasp.net/upload-multiple-image-file-progress-bar-asp-net-using-jquery/ http://jqueryasp.net/show-progress -bar-ASP淨使用-的jquery / – jdruid

回答

0

作爲進度欄本​​來就不是要告訴進步,我選擇使用ASP和GIF動畫去:的UpdateProgress:

<asp:UpdateProgress ID="rptUpdate" runat="server" 
        AssociatedUpdatePanelID="upReports1" DynamicLayout="true"> 
    <ProgressTemplate> 
     <img src="images/Animated.gif"> 
    </ProgressTemplate> 
</asp:UpdateProgress> 

它只是更有意義對我的執行力度。