I have been using the following code to export a large gridview with around 70K-80K rows. After loading for a while I get a "Aw, Snap! Something went wrong while displaying this webpage". Other gridviews with around 50K rows get exported easily but it's just this one with 70K - 80K rows that doesn't. Please help me.
public void btnToCSV_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=Report.csv");
Response.Charset = "";
Response.ContentType = "application/text";
StringBuilder sBuilder = new System.Text.StringBuilder();
for (int index = 0; index < gvReport.Columns.Count; index++)
{
sBuilder.Append(gvReport.Columns[index].HeaderText + ',');
}
sBuilder.Append("\r\n");
for (int i = 0; i < gvReport.Rows.Count; i++)
{
for (int k = 0; k < gvReport.HeaderRow.Cells.Count; k++)
{
if (gvReport.Rows[i].Cells[k].Text.Length == 0 || gvReport.Rows[i].Cells[k].Text.Equals(" ") || gvReport.Rows[i].Cells[1].Text.Equals("") || gvReport.Rows[i].Cells[1].Text.Equals(string.Empty))
{
sBuilder.Append(gvReport.Rows[i].Cells[k].Text = string.Empty + ',');
}
else
{
sBuilder.Append(gvReport.Rows[i].Cells[k].Text.Replace(",", "") + ",");
}
}
sBuilder.Append("\r\n");
}
Response.Output.Write(sBuilder.ToString());
Response.Flush();
Response.End();
}