2012-02-17 10 views
0

更新パネル内にボタンがあり、レポートが作成され、レポートはページ応答として表示されます。私は更新パネルを持っていなかったので、レポートが生成されてダウンロードされましたが、今は更新パネルを導入したときにレポートが生成されますが、ブラウザでは表示されません。私は何をすべきか。レポートを生成して更新パネル内で実行する

using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) 
         { 
          writer.Write(success); 
          writer.Write(error); 
          writer.Write(warning); 
          Response.Write(stringWriter.ToString()); 
         } 
         Response.End(); 

私は更新の進捗状況を使用するために更新パネルを使用しています。

エラーresponse.end()

Get the system.web.httpresponse object associated with the system.web.ui.page object. 
This object allows you to send HTTP response data to client and 
contains information about the response 

に何が、これは意味しない

更新:

<asp:UpdateProgress ID="UpdateProgress2" runat="server"> 
    <ProgressTemplate> 
     <div style="width: 338px; position: relative; top: -420px; left: 80px" class=""> 
     <b>Please Wait...</b> 
      <img runat="server" id="ajaxLoader" style="background-color: White; width: 338px;" 
           src="styles/images/loadImage.gif" alt="loading" /> 
     </div> 
     </ProgressTemplate> 
     </asp:UpdateProgress> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    <asp:Button ID="btn_upload" CssClass="UploadBtncss" runat="server" Text="Upload" 
          OnClick="upload_Click" /> 

答えて

3

よ、

<Triggers> <asp:PostBackTrigger ControlID=”btn1” /> 
</Triggers> 
+0

感謝を@AshokD UpdatelPanelの中​​にを置くと、そのトリックが起こります! – TheDude

3

は、簡単に言えば、ポストバックのトリガーのトリガーを使用してみてくださいUpdatePanel内でResponse.Write(および他の多くのResponseメソッド)を使用することはできません。回避策がありますが、基本的に更新パネルで使用される部分的な更新の性質に依存します。 Response.Writeでうまく再生されません。

あなたはそれをグーグル場合は、このページには、合理的な説明を与えるように思われる(そのようなのUpdatePanelの外にResponse.Writeを移動したりPostBackTriggerの使用など)の選択肢

を見つける: http://www.jnouel.net/post/2009/07/06/ResponseWrite-and-UpdatePanel.aspx

+0

ボタンが更新パネル内にない場合、更新の進行状況はどのようになりますか – Murthy

+0

これはできません。私の頭の上から離れて、私はこれについて簡単な方法を考えることができません。 1つの選択肢は、代わりにJavascriptで進捗を行い、純粋にクライアント側にすることです。または、最初のリクエストのどこかでファイルを作成し、その後ダウンロードするためのリンクを提示するなど、巧妙なことをすることもできます。 – ChrisPatrick

関連する問題