Bonjour,
Je développe actuellement en ASP.NET, plus particulièrement des UserControl.
J'ai créé une fonction qui construit un fichier csv selon les données présentes dans une DataTable.
Mon problème est relativement genant :
A partir du moment où l'utilisateur a choisi "ouvrir" ou "enregistrer" et que le téléchargement est terminé, la page se bloque !
La seul solution pour que la page ne soit plus bloquée, c'est de la recharger.
Et cette solution ne convient, ni à moi, ni à mon tuteur !
J'ai cherché mais je n'ai pas trouvé la solution !!
Voici mon code :
J'ai absolument besoin de trouver une solution !!
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
33
34
35
36
37
38
39
40
41
42
43
44 protected void createCSV(System.Data.DataTable dtTemp) { string contenu = ""; DataTable DT_Tri = new DataTable(); DataView DVTmp = new DataView(dtTemp); DVTmp.Sort = dtTemp.Columns[0].ColumnName + " asc"; DT_Tri = DVTmp.ToTable(); foreach (DataColumn dc in DT_Tri.Columns) { contenu += dc.ColumnName + "; "; } // On passe à la ligne et on saute une ligne contenu += Environment.NewLine; contenu += Environment.NewLine; foreach (DataRow dr in DT_Tri.Rows) { foreach (DataColumn dc in DT_Tri.Columns) { contenu += dr[dc.ColumnName] + "; "; } // On passe à la ligne après avoir parcouru la ligne entière contenu += Environment.NewLine; } contenu += Environment.NewLine; contenu += "Exporté le " + DateTime.Now.Date.ToString("dd/MM/yyyy") + "; "; contenu += " à " + DateTime.Now.Hour.ToString() + "h" + DateTime.Now.Minute + "; "; HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=Resultat_Recherche.csv"); HttpContext.Current.Response.ContentType = "text/csv"; HttpContext.Current.Response.ContentEncoding = Encoding.GetEncoding(1252); HttpContext.Current.Response.Write(contenu); //HttpContext.Current.Response.End(); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); }
Merci d'avance pour toute aide.
ElViRuS
Partager