使用UpdatePanel的UpdateProgress

Ton*_*ony 2 asp.net asp.net-ajax updateprogress

UpdateProgress当用户点击"下一步"按钮转到下一页时,我想在页面A上显示.下一页是页面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>
Run Code Online (Sandbox Code Playgroud)

RPM*_*984 5

要尝试的几件事:

1) 将UpdateProgress控件移动到 UpdatePanel 中

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>
Run Code Online (Sandbox Code Playgroud)


bat*_*wad 5

尝试设置DisplayAfter为非常小的值以立即显示进度指示器,例如:

<asp:UpdateProgress ID="UpdateProgress1" runat="Server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
Run Code Online (Sandbox Code Playgroud)