私はこのコードを持っています:
protected void ibtGenerateReport_Click(object sender, ImageClickEventArgs e)
{
string filename = "report.xls";
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWriter);
DataGrid DataGrd = new DataGrid();
DataGrd.DataSource = odsLSRAudit;
DataGrd.DataBind();
DataGrd.RenderControl(htmlWrite);
System.IO.StreamWriter vw = new System.IO.StreamWriter(filename, true);
stringWriter.ToString().Normalize();
vw.Write(stringWriter.ToString());
vw.Flush();
vw.Close();
WriteAttachment(filename, "application/vnd.ms-excel", stringWriter.ToString());
}
public static void WriteAttachment(string FileName, string FileType, string content)
{
HttpResponse Response = System.Web.HttpContext.Current.Response;
Response.ClearHeaders();
Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
Response.ContentType = FileType;
Response.Write(content);
Response.End();
}
しかし、Response.End()
は私に以下のエラーを与えます:
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.
Details: Error parsing near '<table cellspacing="'.
私が見ることができるように、Response.Write(content)
は正しい情報を持っています。ただし、上記のエラー以外に、[保存/開く]ダイアログボックスは表示されません。
UpdatePanelsを使用しています。