Probleme export d'un gridview en .csv

Probleme export d'un gridview en .csv - C#/.NET managed - Programmation

Marsh Posté le 24-02-2010 à 12:11:45    

Bonjour,
 
Je travail sur un portail Sharepoint dans lequel une page charge une webpart qui contient un UserControl dans lequel je charge un gridview.
 
Je souhaiterai exporter ce gridview au format csv, j'ai utilisé le code suivant qui récupère le DataTable et effectue les traitements :
 

Code :
  1. DataTable dataTable = Session["DataSource"] as DataTable;
  2.                 if (dataTable != null)
  3.                 {
  4.                     DataTable toCsv = dataTable.Copy();
  5.                     HttpContext context = HttpContext.Current;
  6.                     context.Response.Clear();
  7.                     foreach (DataColumn column in toCsv.Columns)
  8.                     {
  9.                         context.Response.Write(column.ColumnName + "," );
  10.                     }
  11.                     context.Response.Write(Environment.NewLine);
  12.                     foreach (DataRow row in toCsv.Rows)
  13.                     {
  14.                         for (int i = 0; i < toCsv.Columns.Count; i++)
  15.                         {
  16.                             context.Response.Write(row[i].ToString().Replace(",", string.Empty) + "," );
  17.                         }
  18.                         context.Response.Write(Environment.NewLine);
  19.                     }
  20.                     context.Response.ContentType = "text/csv";
  21.                     context.Response.AppendHeader("Content-Disposition", "attachment; filename=StripReportExport_" + DateTime.Now.ToString() + ".csv" );
  22.                     context.Response.Flush();
  23.                     context.Response.Close();
  24.                 }


 
Mon probleme est que après le AppendHeader mon gridview est complètement inactif, voir c'est toutes les commandes javascript qui sont inactive.
 
Si quelqu'un a une idée d'où peut provenir le problème ? Merci !

Reply

Marsh Posté le 24-02-2010 à 12:11:45   

Reply

Marsh Posté le 24-02-2010 à 14:22:03    

J'ai testé et meme effet avec "ContentType = "application/octet-stream";" merci quand même !
 
Pour préciser un peu, en fait, j'ai passé le code en debug au pas à pas et c'est vraiment après l'appel a context.Response.AppendHeader(parametres) que lorsqu'on clic sur une colonne, ou qu'on essaie de changer de page dans le gridview, plus de postback effectué.

Reply

Marsh Posté le 01-03-2010 à 02:54:58    

ca fait un bail que j ai pas reinstaller du moss mais le souvenir que j en garde, c est que tu fais pas tout comme tu veux :D
recharger la page ? c est pas l ideal mais ca peux marcher dans certains cas.

Reply

Marsh Posté le 02-03-2010 à 12:24:22    

Effectivement j'ai oublié de préciser mais le refresh du navigateur permet de reprendre la main normalement sur la page.
 
Je sais que c'est surement du à un problème de rafraichissement de la webPart qu'on a développé mais je ne sais pas comment forcer ce rafraichissement.
 
Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed