0

在我的应用程序中,我将 sql 数据源绑定到网格视图,单击导出按钮后,我在数据表中获取了 gridviews 数据源并创建了 webControl 表并将该控件写入 xls 文件。但我收到以下错误:

无法计算表达式,因为代码已优化或本机框架位于调用堆栈顶部。

我的代码如下:

HttpResponse Response = HttpContext.Current.Response;
Response.Clear();
string StudNm = Request["hidStudnm"];
Response.AddHeader("content-disposition", "attachment;filename=" + "StudentPasswordReport" + ".xls");

Response.Charset = "";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

System.Web.UI.WebControls.Table tblRept;
tblRept = CreateTable(exportDt);
tblRept.RenderControl(htmlWrite);

请告诉我为什么会发生此错误以及如何解决此错误

4

1 回答 1

0

你可以试试这个

    DataTableToExcel(exportDt);

    private void DataTableToExcel(DataTable dataTable)
    {
        StringWriter writer = new StringWriter();
        HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
        GridView gridView = new GridView();
        gridView.DataSource = dataTable;
        gridView.AutoGenerateColumns = true;
        gridView.DataBind();
        gridView.RenderControl(htmlWriter);
        htmlWriter.Close();

        Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
        Response.Charset = "";
        Response.Write(writer.ToString());
        Response.End();
}
于 2013-10-21T09:07:09.693 回答