当用户点击“下一步”按钮转到下一页时,我想在页面A上显示UpdateProgress
。下一页是页面B,其中包含大量数据。
单击该按钮时,它不会显示UpdateProgress
。
此代码中缺少什么,以及如何显示?
<asp:UpdateProgress ID="UpdateProgress1" runat="Server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate >
Please wait ...
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnNext" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Button ID="btnCancel" runat="server" TabIndex="1" Text="Cancel"onclick="btnCancel_Click" />
<asp:Button ID="btnNext" runat="server" TabIndex="2" Text="Next" onclick="btnNext_Click" />
</ContentTemplate>
</asp:UpdatePanel>
答案 0 :(得分:5)
尝试将DisplayAfter
设置为一个非常小的值,以便立即显示进度指示器,例如:
<asp:UpdateProgress ID="UpdateProgress1" runat="Server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
答案 1 :(得分:3)
要尝试的事情:
1)在UpdatePanel
中移动 UpdateProgress 控件2)从 UpdateProgress 标记中删除 AssociatedUpdatePanelID 属性
我依靠选项1来做这个伎俩。
修改强>
这是一种非ProgressTemplate方式,使用客户端事件处理程序:
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
// some code to show image, e.g:
document.getElementById('somedivwhichasimage').className = 'show';
}
function EndRequestHandler(sender, args)
{
// some code to hide image, e.g:
document.getElementById('somedivwhichasimage').className = 'hidden';
}
</script>
答案 2 :(得分:2)
在此页面后面的代码中添加此代码。
protected void btnNext_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(3000);
}
希望这会有所帮助!!
编辑: 点击此链接: http://msdn.microsoft.com/en-us/library/bb386421.aspx
添加我尝试并正在运行的aspx页面中的代码,
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
<asp:UpdateProgress ID="UpdateProgress1" runat="Server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate >
<asp:Label ID="lblwait" runat="server" Text="Please wait.."></asp:Label>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Button ID="btnCancel" runat="server" TabIndex="1" Text="Cancel" />
<asp:Button ID="Button1" runat="server" TabIndex="2" Text="Next" onclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
答案 3 :(得分:0)
尝试将UpdateProgress
控件放在UpdatePanel
中。这应该适合你。
希望有所帮助!