Blocage de ma page après un envoi de fichier
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 !! :cry:
Voici mon code :
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
|
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();
} |
J'ai absolument besoin de trouver une solution !! :calim2:
Merci d'avance pour toute aide.
ElViRuS