1
private void ExportGridView()2

{3
string attachment = "attachment; filename=signup_by_source_" + DateTime.Now.ToShortDateString() + ".xls";4

5
Response.ClearContent();6

7
Response.AddHeader("content-disposition", attachment);8

9
Response.ContentType = "application/ms-excel";10

11
System.IO.StringWriter sw = new System.IO.StringWriter();12

13
HtmlTextWriter htw = new HtmlTextWriter(sw);14

15

16

17
// Create a form to contain the grid18

19
HtmlForm frm = new HtmlForm();20

21
GridView1.Parent.Controls.Add(frm);22

23
frm.Attributes["runat"] = "server";24

25
frm.Controls.Add(GridView1);26

27

28

29
frm.RenderControl(htw);30

31
//GridView1.RenderControl(htw);32

33
Response.Write(sw.ToString());34

35
Response.End();36

37
}38
private void PrepareGridViewForExport(Control gv)39

{40

41
LinkButton lb = new LinkButton();42

43
Literal l = new Literal();44

45
string name = String.Empty;46

47
for (int i = 0; i < gv.Controls.Count; i++)48

{49

50
if (gv.Controls[i].GetType() == typeof(LinkButton))51

{52

53
l.Text = (gv.Controls[i] as LinkButton).Text;54

55
gv.Controls.Remove(gv.Controls[i]);56

57
gv.Controls.AddAt(i, l);58

59
}60

61
else if (gv.Controls[i].GetType() == typeof(DropDownList))62

{63

64
l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;65

66
gv.Controls.Remove(gv.Controls[i]);67

68
gv.Controls.AddAt(i, l);69

70
}71

72
else if (gv.Controls[i].GetType() == typeof(CheckBox))73

{74

75
l.Text = (gv.Controls[i] as CheckBox).Checked ? "True" : "False";76

77
gv.Controls.Remove(gv.Controls[i]);78

79
gv.Controls.AddAt(i, l);80

81
}82

83
if (gv.Controls[i].HasControls())84

{85

86
PrepareGridViewForExport(gv.Controls[i]);87

88
}89
}