0

我的 jqGrid 中添加了“导出到 Excel”按钮。它工作正常,直到我将 jqGrid 链接到具有 20,000 条记录的大型 GridView,每条记录有 200 个字段(列)

我在 DataBind() 调用中收到 {"Exception of type 'System.OutOfMemoryException' was throw."}:

    public void ExportToExcel()
    {

        if (Session["query"] == null || Session["fieldNameAsDef"] == null)
        {
            return;
        }
        var grid = new GridView();
        List<string> fieldNameAsDef = (List<string>)Session["fieldNameAsDef"];
        grid.DataSource = ((IQueryable)Session["query"]).Select("new (" + string.Join(",", fieldNameAsDef.ToArray()) + ")");
        grid.DataBind();

        Response.ClearContent();
        Response.AddHeader("content-disposition", "attachment; filename=EDGE_ExcelFile.xls");
        Response.ContentType = "application/excel";
        StringWriter sw = new StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        grid.RenderControl(htw);
        Response.Write(sw.ToString());
        Response.End();
    }

这是 System.Web.UI.WebControls.GridView 的限制吗?或者是 IIS 6 和 MVC2 问题。

jqGrid 及其作为 DataSource 的 GridView 是旧 MVC 2 应用程序的一部分,该应用程序在具有 IIS 6 和 4GB RAM 的 Windows 2003 SP2 服务器上运行。

4

0 回答 0