首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带UpdatePanel的UpdateProgress

带UpdatePanel的UpdateProgress
EN

Stack Overflow用户
提问于 2010-11-02 05:58:35
回答 4查看 24.4K关注 0票数 3

我想在用户单击“下一步”按钮转到下一页时在页面A上显示UpdateProgress。下一个页面是页面B,它有大量的数据加载。

当单击该按钮时,它不会显示UpdateProgress

这段代码中缺少什么,如何才能使其显示出来?

代码语言:javascript
复制
<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>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-02 22:50:13

尝试将DisplayAfter设置为一个非常小的值,以使进度指示器立即出现,例如:

代码语言:javascript
复制
<asp:UpdateProgress ID="UpdateProgress1" runat="Server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
票数 5
EN

Stack Overflow用户

发布于 2010-11-02 06:05:54

可以尝试的几件事:

1)在UpdatePanel中移动UpdateProgress控件

2)从UpdateProgress标记中删除AssociatedUpdatePanelID属性

我把希望寄托在选项1上。

编辑

这是一种非ProgressTemplate方式,使用客户端事件处理程序:

代码语言:javascript
复制
<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>
票数 5
EN

Stack Overflow用户

发布于 2010-11-02 06:25:40

将此代码添加到此页面的代码后面。

代码语言:javascript
复制
 protected void btnNext_Click(object sender, EventArgs e)
 {
     System.Threading.Thread.Sleep(3000);
 }

希望这能有所帮助!!

编辑:点击此链接:http://msdn.microsoft.com/en-us/library/bb386421.aspx

添加来自aspx页面的代码,我尝试过并且正在工作。

代码语言:javascript
复制
<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> 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4073444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档