2015-04-18 70 views
0

我用這個教程在這個環節http://www.aspdotnet-suresh.com/2010/10/how-to-show-progressbar-during.html,使「進度條」,它工作得很好,但我有另外的UpdatePanel的頁面,每次我在這個UpdatePanel中,在「進步點擊一個按鈕欄「顯示。的UpdateProgress和加載酒吧

我不想被在頁面每次的UpdatePanel顯示進度條。我寫了AssociatedUpdatePanelID="pnlData"但仍然無法正常工作。我怎樣才能做到這一點?

另一個問題:如果我在與UpdateProgress關聯的UpdatePanel中有2個按鈕,並且我只希望這些按鈕中的一個顯示進度條,但不是兩者都可以嗎?

回答

0

爲什麼顯示每個按鈕的點擊和每個更新面板中的進度條的原因是處理程序綁定到頁面的請求事件:

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler); 
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
每AJAX往返到服務器的進度

所以酒吧首先顯示然後隱藏。

要改變這種行爲,我建議找出請求的發起者。我認爲它會在BeginRequestHandlersenderargs參數中的某處可用。使用F12開發人員工具調試對象。然後,只需向popup.show();添加額外條件。您可以使用此(或類似)方法來過濾應該觸發進度條的按鈕和更新面板。

通常的做法是僅爲長時間運行的操作顯示進度條。所以,你會在BeginRequest活動期間包裝在setTimeoutpopup.show();如果EndRequest是較早出現,然後指定超時你使用clearTimeout復位超時。

0

Ü提到u必須使用AssociatedUpdatePanelID = 「pnlData」。但是,你有沒有設置UpdateMode =「有條件的」。像這樣: -

<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional">

+0

是的我把它設置爲「有條件的」 – user1947393