Hallo,
Ik heb een website waar partners gegevens uit kunnen halen en deze kunnen exporteren naar Excel.
Dit gaat goed.
Alles is geschreven met Visual Studio en de taal c#
Als ze de gridview sorteren, op bijvoorbeeld datum en dan willen exporteren, dan werkt dat niet. De excel is dan niet gesorteerd.
Hieronder de code van het exporteren.
Mijn gridview heet "Gridview1"
Ben ook al volop aan het zoeken, maar blijkbaar heeft niemand hetzelfde probleem.
iemand een idee of een voorbeeld?
Ik heb een website waar partners gegevens uit kunnen halen en deze kunnen exporteren naar Excel.
Dit gaat goed.
Alles is geschreven met Visual Studio en de taal c#
Als ze de gridview sorteren, op bijvoorbeeld datum en dan willen exporteren, dan werkt dat niet. De excel is dan niet gesorteerd.
Hieronder de code van het exporteren.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| protected void ExportExcel_Click(object sender, EventArgs e) { PrepareGridViewForExport(GridView1); ExportGridView(); } private void ExportGridView() { string attachment = "attachment; filename=Contacts.xls"; Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/ms-excel"; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); GridView1.RenderControl(htw); Response.Write(sw.ToString()); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { } private void PrepareGridViewForExport(Control gv) { LinkButton lb = new LinkButton(); Literal l = new Literal(); string name = String.Empty; for (int i = 0; i < gv.Controls.Count; i++) { if (gv.Controls[i].GetType() == typeof(LinkButton)) { l.Text = (gv.Controls[i] as LinkButton).Text; gv.Controls.Remove(gv.Controls[i]); gv.Controls.AddAt(i, l); } else if (gv.Controls[i].GetType() == typeof(DropDownList)) { l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text; gv.Controls.Remove(gv.Controls[i]); gv.Controls.AddAt(i, l); } else if (gv.Controls[i].GetType() == typeof(CheckBox)) { l.Text = (gv.Controls[i] as CheckBox).Checked ? "True" : "False"; gv.Controls.Remove(gv.Controls[i]); gv.Controls.AddAt(i, l); } if (gv.Controls[i].HasControls()) { PrepareGridViewForExport(gv.Controls[i]); } } |
Mijn gridview heet "Gridview1"
Ben ook al volop aan het zoeken, maar blijkbaar heeft niemand hetzelfde probleem.
iemand een idee of een voorbeeld?