簡體   English   中英

UpdateProgress不起作用

[英]UpdateProgress not working

我有一個UpdateProgress並且嘗試回發時顯示loading gif
但是當我單擊按鈕時,此代碼不起作用。

使用此代碼不會發生任何事情,並且單擊按鈕后也不會返回任何帖子。

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" DynamicLayout="true">
    <ProgressTemplate>
        <asp:Image ID="ImageWait" runat="server" ImageUrl="../images/wait.gif" />
    </ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
       <asp:Button ID="ButtonSave" runat="server" Text="Save" OnClick="ButtonSave_Click" ValidationGroup="Valid1" />
    </ContentTemplate>
</asp:UpdatePanel>   

protected void ButtonSave_Click(object sender, EventArgs e)
{
    // Some code
}

我怎樣才能解決這個問題?

  • 將您的UpdatePanel的UpdateMode設置為Conditional
  • 在UpdatePanel內手動觸發AsyncPostBackTrigger到您的控件,並提供將觸發的ControlID和EventName:

     <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" > </ContentTemplate> <asp:Button ID="ButtonSave" runat="server" Text="Save" OnClick="ButtonSave_Click" /> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="ButtonSave" EventName="Click" /> </Triggers> </asp:UpdatePanel> 

  • 將關聯的UpdatePanel的ID提供給UpdateProgress:

     <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1"> 
  • 您可以使用System.Threading.Thread.Sleep(3000);在事件中測試其工作情況System.Threading.Thread.Sleep(3000);

     protected void ButtonSave_Click(object sender, EventArgs e) { // delay it for 3 milliseconds System.Threading.Thread.Sleep(3000); //... Here will be your logic } 

默認情況下(在UpdateProgress控件中未設置任何值)

DisplayAfter="500" 

如果您的回發“太快”,UpdateProgress將不會顯示...嘗試將其設置為:

DisplayAfter="1" 

檢查它是否正常工作,然后設置所需的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM