更新进度不起作用
UpdateProgress not working
我有一个 UpdateProgress
我正在尝试显示一个 loading gif
而 post 返回
但是当我点击按钮时这段代码不起作用。
此代码没有任何反应,也没有 post 单击按钮返回。
<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 设置为条件
手动将 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"
如果您的回传是 "too fast",UpdateProgress 将不会显示...
尝试将其设置为:
DisplayAfter="1"
检查它是否正常工作,然后设置您想要的值
我有一个 UpdateProgress
我正在尝试显示一个 loading gif
而 post 返回
但是当我点击按钮时这段代码不起作用。
此代码没有任何反应,也没有 post 单击按钮返回。
<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 设置为条件
手动将 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"
如果您的回传是 "too fast",UpdateProgress 将不会显示... 尝试将其设置为:
DisplayAfter="1"
检查它是否正常工作,然后设置您想要的值