3

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>
4

4 回答 4

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>
于 2010-11-01T22:05:53.697 回答
5

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

<asp:UpdateProgress ID="UpdateProgress1" runat="Server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
于 2010-11-02T14:50:13.397 回答
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> 
于 2010-11-01T22:25:39.867 回答
0

试着把UpdateProgress控制放在里面UpdatePanel。这应该对你有用。
希望有帮助!

于 2010-11-03T08:20:07.477 回答