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 に答える