Asp.net

無法讓 ASP.Net UpdateProgress 顯示

  • December 19, 2019

每當我的更新面板執行 Ajax 操作時,我都會嘗試顯示更新進度載入圖像。我查看了教程,看起來很簡單,但我沒有運氣。這幾乎是我所擁有的……

<div id="panelWrapper">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
   <ContentTemplate>
       <asp:UpdateProgress ID="TaskUpdateProgress" runat="server" DynamicLayout="False" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="0">
           <ProgressTemplate>
               <asp:Image ImageUrl="~/Images/ajax-loader.gif" Width="16px" Height="16px" runat="server" ID="TaskLoadingImage"/>
           </ProgressTemplate>
       </asp:UpdateProgress>

       <div id="UrlDiv" class="URLNotification">
           <asp:Label ID="UrlLabel" runat="server" Text="URL:" AssociatedControlID="Url" />
           <asp:HyperLink ID="Url" runat="server" Text="Click &quotGenerate" to create the URL." />
       </div>

       <br />

       <asp:CheckBoxList runat="server" ID="IncludeItems" TextAlign="Right">
           <asp:ListItem Selected="True">Include 1</asp:ListItem>
           <asp:ListItem Selected="True">Include 2</asp:ListItem>
       </asp:CheckBoxList>

       <br />

       <div id="buttons" style="display:inline;">
           <asp:Button ID="Generate" runat="server" OnClicked="Generate_Clicked" Text="Generate" />
           <asp:Button ID="Add" runat="server" OnClientClick="add();" Text="Add"/>  
       </div>
   </ContentTemplate>
</asp:UpdatePanel>

我在樣式表中也有一些絕對定位樣式。我已經嘗試了您在此處看到的各種變體,但沒有找到很多關於可能是什麼問題的好資訊。有任何想法嗎?如果您還需要什麼,請告訴我。

**編輯:**我發現的唯一新資訊是……

“在以下情況下,UpdateProgress 控制項將不會自動顯示:

UpdateProgress 控制項與特定更新面板相關聯,但非同步回發來自不在該更新面板內的控制項。

UpdateProgress 控制項不與任何 UpdatePanel 控制項關聯,並且非同步回發不是由不在 UpdatePanel 內且不是觸發器的控制項產生的。例如,更新是在程式碼中執行的。”

我非常有信心這些都不適合我的情況。所發生的只是點擊按鈕(位於更新面板內)呼叫一些程式碼,在該程式碼後面設置要為更新面板重新載入的 URL 文本。

UpdateProgressPanel 也有同樣的問題。我發現當您放置 UpdateProgressPanel 並將其關聯到 UpdatePanel 時,來自該 UpdatePanel 的任何回發都會導致 UpdateProgressPanel 顯示。

另一個技巧是,如果頁面上有一個 UpdatePanel,則刪除 AssociatedUpdatePanel 參數,這將導致 UpdateProgressPanel 顯示發生的每個 Async PostBack。

UpdateProgressPanel 可以放在程式碼中的任何位置,除了那些上面有預定義標籤的區域。它可以放置在 UpdatePanel 內部或外部,它會顯示您是否正確放置了它的 CSS、將其關聯到 UpdatePanel 或只是將其放置在那裡,如果發生非同步回發結果,它將顯示出來。

不要將更新進度控制項放在更新面板控制項中

引用自:https://stackoverflow.com/questions/521554