本人需要从GridView导出Excel表格 ,以下是导出部分的代码
public static void DataGridToExcel(GridView dg, Page page)
{
page.Response.Clear();
page.Response.Buffer = true;
page.Response.Charset = "GB2312";
string str = "生成的电子表格.xls";
page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(str, Encoding.UTF8));
page.Response.ContentEncoding = Encoding.GetEncoding("GB2312");
page.Response.ContentType = "application/ms-excel";
page.EnableViewState = false;
CultureInfo formatProvider = new CultureInfo("ZH-CN", true);
StringWriter writer = new StringWriter(formatProvider);
HtmlTextWriter writer2 = new HtmlTextWriter(writer);
dg.RenderControl(writer2);
page.Response.Write(writer.ToString());
page.Response.End();
dg.AllowPaging = true;
dg.DataBind();
}
在普通页面上,一切正常,可以正常导出Excel文件。
当此页面加入到Ajax框架中,使用Scriptmanager控件和updatepanel控件以后,页面出现Response相关的错误,
请高手指教如何解决Scriptmanager与页面输出的矛盾!