UpdateProgress无法正常工作

时间:2017-10-08 13:07:07

标签: c# asp.net ajax updatepanel updateprogress

我有一个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
}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

  • 将UpdatePanel的UpdateMode设置为Conditional
  • 手动将AsyncPostBackTrigger触发到UpdatePanel内的控件,并提供将触发的ControlID和EventName:

    &#13;
    &#13;
    <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>
    &#13;
    &#13;
    &#13;

  • 将相关的UpdatePanel ID提供给UpdateProgress:

    <asp:UpdateProgress ID="UpdateProgress1" runat="server" 
        AssociatedUpdatePanelID="UpdatePanel1">
    
  • 您可以使用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
    }
    

答案 1 :(得分:0)

默认情况下(在UpdateProgress控件中未设置任何值)

DisplayAfter="500" 

如果您的回发“太快”,UpdateProgress将不会显示... 尝试将其设置为:

DisplayAfter="1" 

检查它是否有效,然后设置所需的值