生成报告并在更新面板中执行它

时间:2012-02-17 12:13:12

标签: c# asp.net updatepanel ajaxcontroltoolkit

我在更新面板中有一个按钮,它创建一个报告,报告作为页面响应给出。当我没有更新面板时,生成并下载了报告,但现在当我引入更新面板时,报告已生成但我没有在浏览器中获取该报告。我该怎么办。

  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" />

2 个答案:

答案 0 :(得分:3)

尝试使用Trigger进行回发触发

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

答案 1 :(得分:3)

简单地说,你不能在UpdatePanel中使用Response.Write(和许多其他Response方法)。有解决方法,但它主要取决于更新面板使用的部分更新的性质。它与Response.Write的效果不太好。

如果你谷歌它你会找到替代品(例如将Response.Write移出UpdatePanel或使用PostBackTrigger)

这个页面似乎给出了一个合理的解释: http://www.jnouel.net/post/2009/07/06/ResponseWrite-and-UpdatePanel.aspx