protected void btnExport_Click(object sender, EventArgs e)
{
string strReport ="Report";
GetGridDetails(true);
ExportDataGrid(dgSRDetails, strReport);
}
public void ExportDataGrid(DataGrid oGrid, string exportFile)
{
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=\"" + exportFile + "\"");
Response.ContentType = "application/excel";
Response.Charset = "";
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
ClearControls(oGrid);
oGrid.GridLines = GridLines.Both;
oGrid.HeaderStyle.BackColor = System.Drawing.Color.LightGray;
oGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
private void ClearControls(Control control)
{
for (int i = control.Controls.Count - 1; i >= 0; i--)
{
ClearControls(control.Controls[i]);
}
if (!(control is TableCell))
{
if (control.GetType().GetProperty("SelectedItem") != null)
{
LiteralControl literal = new LiteralControl();
control.Parent.Controls.Add(literal);
try
{
literal.Text = (string)control.GetType().GetProperty("SelectedItem").GetValue(control, null);
}
catch
{
}
control.Parent.Controls.Remove(control);
}
else if (control.GetType().GetProperty("Text") != null)
{
LiteralControl literal = new LiteralControl();
control.Parent.Controls.Add(literal);
literal.Text = (string)control.GetType().GetProperty("Text").GetValue(control, null);
control.Parent.Controls.Remove(control);
}
}
return;
}