IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Export Excel et perte de flux


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club Avatar de ThanosTitan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut Export Excel et perte de flux
    Bonjour,

    Alors déjà, désolé pour l'intitulé du topic, je ne savais pas trop comment appeler ça.

    Je bosse sur un site en ASP.NET 4.0/C# et je dois exporter des données en CSV. J'ai donc mis un bouton sur ma page avec entre autre le code suivant dans le code behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Response.Clear();
    Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.csv", title));
    Response.ContentEncoding = Encoding.Default;
    Response.Charset = "";
    Response.ContentType = "application/vnd.xls";
    Response.Write(sb.ToString());
    Response.Flush();
    Response.End();
    Quand je clique sur mon bouton, le fichier csv est bien généré et s'ouvre dans Excel sans soucis. Par contre, après, je ne peux plus rien faire sur ma page. Quand je clique sur mon bouton d'export, ou même sur n'importe quel autre bouton avec du code behind associé, rien ne se passe. Je suis obligé de recharger ma page pour que tout refonctionne à nouveau.

    Est-ce que vous auriez une idée du problème et de comment le corriger ?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Salut,

    Moi j'utilise ce code pour du PDF et il fonctionne à merveille depuis près de 7ans.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename="+ rptViewer.LocalReport.DisplayName +".pdf");
            HttpContext.Current.Response.ContentType = "application/pdf";
            HttpContext.Current.Response.Cache.SetExpires(DateTime.Now.AddMonths(1));
            HttpContext.Current.Response.BinaryWrite(filebytes);
            HttpContext.Current.Response.End();
    Essaie peut-etre de faire un Response.BinaryWrite au lieu de Response.Write

  3. #3
    Nouveau membre du Club Avatar de ThanosTitan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut
    Ca ne marche pas mieux :/
    J'ai été jusqu'à générer du PDF comme dans ton exemple et ça fait exactement la même chose.

  4. #4
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Je pense que tu utilises AJAX dans ta page. Ceci peut expliquer le comportement que tu décris.

    Essaie cela si c'est le cas.
    http://encosia.com/ajax-file-downloads-and-iframes/

    Sinon, tu dois faire ton code de download en forçant un postback total..

  5. #5
    Nouveau membre du Club Avatar de ThanosTitan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut
    Alors le soucis, c'est que je suis dans un User Control, sans forcément savoir dans quelle page il peut être utilisé. Donc pas d'AJAX dans mon UC, mais possiblement un dans la page qui l'utilise. D'ailleurs, si j'ai bien compris, la page utilisant mon UC se trouve elle-même dans une iframe du site principale.

    Je viens de reprendre le poste de quelqu'un donc je découvre comment est fait le site. Et il est fait à moitié avec SharePoint, à moitié avec VS2010 (pour les UC), avec de l'AJAX et des iframes dedans, je nage complétement >_<

    Bon, je vais essayer d'orienter mes recherches dans cette direction, merci !

  6. #6
    Nouveau membre du Club Avatar de ThanosTitan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut
    Comme j'ai d'autres boutons dans le même UC, j'ai essayé de copier dessus. J'ai rajouté un autopostback="True" sur mon bouton, ça n'a rien changé.
    J'ai ajouté un return; à la place du Response.End(), comme sur les autres, et ça a rajouté le code source de la page à la suite de mes données dans le fichier Excel.

    Comme je n'ai pas accès à l'AJAX dans mon UC, je ne pense pas pouvoir utilisé la technique de l'iframe.

    Du coup, comment est-ce que pourrais faire pour forcer un postback de la page après mon code de download ?

Discussions similaires

  1. [XL-2003] Perte des indices et exposants lors de l'export excel
    Par louis1203 dans le forum Excel
    Réponses: 1
    Dernier message: 17/04/2015, 08h29
  2. [phpMyAdmin] export excel ; perte des retours à la ligne dans cellule
    Par emmbo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 13/07/2011, 16h15
  3. [AC-2002] ETAT: export vers excel/word, perte des graphiques
    Par Kriss63 dans le forum IHM
    Réponses: 1
    Dernier message: 04/03/2010, 08h43
  4. Réponses: 1
    Dernier message: 25/11/2008, 13h15
  5. [CR] export Excel (plusieurs feuilles)
    Par kaiserben dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 21/11/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo