更新进度不起作用



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

我该如何解决这个问题?

  • 将更新面板的更新模式设置为条件
  • 手动触发 AsyncPostBackTrigger 到 UpdatePanel 中的控件,并提供将触发的 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);

    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" 

如果您的回发"太快",更新进度将不会显示...尝试将其设置为:

DisplayAfter="1" 

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

相关内容

  • 没有找到相关文章

最新更新