Je développe en Asp.Net et CSharp Framework 4 et j'utilise des ComponentArt(payant) pour les GridView.
Je veux exporter les données vers csv
Voici le code :
StringBuilder _sb = new StringBuilder();
switch (Gestion)
{
case "Gestion":
try
{
//Récupère les données du grid
var ds = (LinkedList)controlGrid.DataSource;
foreach (string headerDatas in headerText)
{
//Affiche les titres des données que l'on récupère
// Nom;Prenom;Login;Statut
_sb.Append(headerDatas + ";");
}
//Retour à la ligne
_sb.Append(Environment.NewLine);
foreach (var personnel in _ds)
{
// Récupéaration de la données avec un séparateur à la fin
_sb.Append(personnel.Nom + ";");
_sb.Append(personnel.Prenom + ";");
_sb.Append(personnel.Login + ";");
_sb.Append(personnel.Reinit + ";");
// Retour à la ligne pour un nouveal enregistrement
_sb.Append(Environment.NewLine);
}
}
catch (Exception)
{
Log.Error("Pb dans CSV");
return;
}
break;
catch (Exception)
{
Log.Error("Pb dans CSV");
return;
}
break;
}
Response.Write(_sb.ToString());
Response.Clear();
Response.ContentType = "text/csv";
Response.BinaryWrite(Encoding.ASCII.GetBytes(_sb.ToString()));
string attachement = string.Format("attachment;filename={0}", _fileName);
HttpContext.Current.Response.AppendHeader("content-disposition", attachement);
Response.Charset = "utf-8";
Response.Flush();
Response.End();
Response.Redirect("~", false);
Mon fichier excel s'ouvre bien. J'ai des données.
Les erreurs sont les suivantes quand j'exécute :
- Quand je clique une 1ere fois ca marche quand je clique une 2ème fois j'obtiens => Le serveur ne peut pas ajouter l'en-tête après l'envoi des en-têtes Http ou
- impossible d'évaluer l'expression car le code de la méthode actuelle est optimisé ou un frame natif se trouve en haut de la pile des appels