Bonjour à tous,
Apres maintes recherche j'ai décidé une fois de plus de faire appel aux spécialistes du forum pour un probleme de gridview. En effet je bind ma gridview sur le résultat d'une requete SQL et l'affiche dans ma page, ça c'est OK.
Ensuite j'ai un bouton permettant d'exporter au format excel la grid view en utilisant les codes suivants issus du net :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 private void exportXls() { String Attachement = "attachment; filename=MAP_EXPORT_" + DateTime.Now.ToShortDateString() + ".xls"; Response.ClearContent(); Response.AddHeader("content-disposition", Attachement); Response.ContentType = "application/ms-excel"; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); HtmlForm frm = new HtmlForm(); frm.Attributes["runat"] = "server"; PrepareGridViewForExport(gvDevice); gvDevice.Parent.Controls.Add(frm); frm.Controls.Add(gvDevice); PrepareGridViewForExport(gvIdPerfMin); gvIdPerfMin.Parent.Controls.Add(frm); frm.Controls.Add(gvIdPerfMin); PrepareGridViewForExport(gvIdPerfAvg); gvIdPerfAvg.Parent.Controls.Add(frm); frm.Controls.Add(gvIdPerfAvg); PrepareGridViewForExport(gvIdPerfMax); gvIdPerfMax.Parent.Controls.Add(frm); frm.Controls.Add(gvIdPerfMax); frm.RenderControl(htw); Response.Write(sw.ToString()); Response.End(); }tout cela est correct, mais ce que j'aimerais faire c'est ajouter un bouton permettant d'auto-génerer le excel, l'enregistrer sur le serveur pour pouvoir le mettre en piece jointe à l'email crée par mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 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]); } } }
J'ai beaucoup cherché avant de venir posté et je ne vois pas comment je pourrais enregistrer le fichier côté serveur (dans temp par exemple) au vu de la façon dont je le génere.
En vous remerçiant pour votre aide.
Partager