2010-11-01 64 views
2

我想在用户单击“下一步”按钮转到下一页时在页面A上显示UpdateProgress。下一页是页面B,该页面负载很重。带有UpdatePanel的UpdateProgress

单击按钮时,它不显示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> 

回答

5

尝试设置DisplayAfter到一个很小的值,使进度指示器立即出现,如:

<asp:UpdateProgress ID="UpdateProgress1" runat="Server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1"> 
3

几件事情尝试:

1)将在UpdatePanel

2)从的UpdateProgress卸下AssociatedUpdatePanelID属性内的的UpdateProgress控制标签

我正在为方案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> 
+0

仍然没有炒作.. – Tony 2010-11-01 23:40:18

+0

是您发布的确切代码吗?有什么遗漏吗?还有其他方法可以完成这项工作(用javascript完成客户端)。看到我的编辑另一个选项。 – RPM1984 2010-11-02 00:19:28

+1

在UpdatePanel中移动UpdateProgress控件 - >为我工作,谢谢 – Thomas 2011-08-11 08:15:37

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> 
+0

仍然无法正常工作.. – Tony 2010-11-01 23:31:34

+0

不知何故我无法添加代码,您可以参考链接。希望帮助! – genericuser 2010-11-02 14:11:08

0

尝试把UpdateProgress内部控制UpdatePanel。这应该适合你。
希望有帮助!