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 :

generation fichier excel et update panel


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut generation fichier excel et update panel
    Bonjour,

    actuellement je suis sur une page qui doit générer un fichier excel pour ce faire j'utilise la solution de la modification du Response.

    Problème je dois travailler avec un updatePanel et donc ca coince vu que dans ce cas la il s'agit d'une mise à jour partiel.

    Si quelqu'un à une solution je suis preneur.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Ne pas utiliser d'UpdatePanel ? ... ou du moins pas pour télécharger le fichier Excel...

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut
    ah si seulement l'updatePanel est au niveau de la masterPage sinon j'aurais juste eu à définir mes trigger pour la page.
    mais c'était effectivement la première solution pensé

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut
    j'ai essayé d'ajouter en code behind mon bouton de génération d'excel dans les triggers, de mon updatePanel, en tant que postbackTrigger.
    malheuresement il me met un jolie :
    A control with ID 'ButtonExcelGenerate' could not be found for the trigger in UpdatePanel 'UpdatePanel1'
    ou quand je met mon clientID
    A control with ID 'ctl00_ContentPlaceHolder1_ButtonExcelGenerate' could not be found for the trigger in UpdatePanel 'UpdatePanel1'
    je suppose que cela vient du fait que mon updatePanel est dans ma masterPage mais je n'ai plus d'idée que ca

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Le plus simple, c'est tout de même d'utiliser un HyperLink qui ouvre une page dans une nouvelle fenêtre, page qui contient le code d'export dans son Page_Load.

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut
    j'avais vu la solution, je l'ai essayée ca marche sous FF mais sous IE7 j'ai le droit à un beau message d'erreur au moment ou il veut telecharger.
    donc j'ai abandonné cette solution.

    sinon j'ai trouvé pourquoi j'avais l'erreur il fallait utiliser le UniqueId et pas le ClientID. Mais il me fait quand même l'animation de mon updatePanel qui tourne en boucle et rien ne sort.
    Donc est ce que c'est vraiment un postBack complet qu'il me fait j'ai des doutes.

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Oui. Une requête AJAX ne peut pas retourner un fichier.

    C'est pas normal que ça ne fonctionne pas avec IE7... c'est quoi le "beau" message d'erreur ?

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut
    donc quand j'essaye la méthode du popup avec IE7 (je ne sais pas ce que ca donne avec IE6)
    je clique sur mon bouton qui declenche un javascript vers mon popup qui génère mon fichier excel je vois le popup s'ouvrir se fermer tout aussi vite et
    la fenêtre de téléchargement apparait avec un message d'erreur par dessus

    Internet Explorer n'a pas pu ouvrir ce site Internet. Le site requis n'est pas disponible ou n'a put être trouvé.
    je viens d'essayer en utilisant le request.redirect mais l'ajax le bloque.

  9. #9
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Que veux-tu faire, ouvrir un fichier excel ou bien en créer un à partir de données de ta page, si c'est le cas,tu met le bouton excel dans le upadtepanel, tu met le trigger post back avec le nom de ton bouton. Ca fonctionne chez moi

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut
    Alors je souhaite en créer un à partir des données de la page.
    J'ai essayé la méthode d'ajout du bouton dans les triggers de l'updatePanel
    en tant que postBack mais il continue de se déclencher en asynchrone.


    updatePanel dans ma masterPage
    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
     
     <asp:ScriptManager ID="ScriptManager1"  runat="server" 
                EnableScriptGlobalization="true" EnableScriptLocalization="true" 
                AsyncPostBackTimeout="900" />
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
              <ContentTemplate>
                <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
     
                </asp:ContentPlaceHolder>
              </ContentTemplate>
            </asp:UpdatePanel>
     
            <cc1:UpdatePanelAnimationExtender ID="UpdatePanel1_UpdatePanelAnimationExtender" 
                runat="server" Enabled="True" TargetControlID="UpdatePanel1">
        <Animations>
            <OnUpdating>
                <Sequence>
                    <FadeOut AnimationTarget="updateProgressDiv" />
                    <StyleAction AnimationTarget="updateProgressDiv" Attribute="display" Value="block"/>
                    <Parallel duration="1" Fps="24">
                        <FadeIn AnimationTarget="updateProgressDiv" minimumOpacity="0.5" />
                        <FadeOut minimumOpacity=".5" />
                     </Parallel>
                 </Sequence>
            </OnUpdating>
            <OnUpdated>
                <Parallel duration="0.5" Fps="24">
                    <FadeOut AnimationTarget="updateProgressDiv" />
                    <FadeIn minimumOpacity="0.5" />
                    <StyleAction AnimationTarget="updateProgressDiv" Attribute="display" Value="none"/>
                </Parallel> 
            </OnUpdated>
        </Animations>        
        </cc1:UpdatePanelAnimationExtender>
    et mon code d'ajout du trriger dans ma page concernant la génération excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!IsPostBack)
                {
                    PostBackTrigger pbs = new PostBackTrigger();
                    pbs.ControlID = ButtonExcelGenerate.UniqueID;
                    ((UpdatePanel)this.Master.FindControl("UpdatePanel1")).Triggers.Add(pbs);
                }

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut
    bon au final c'est bon, il fallait pas inscrire le bouton au trigger de l'update panel
    mais au scriptManager

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (ScriptManager)this.Master.FindControl("ScriptManager1")).RegisterPostBackControl(ButtonExcelGenerate);
    donc merci a vous j'aurais appris quelque chose c'est au moins ca de pris.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Excel] Génération des fichiers excel en php
    Par vacknov dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 19/06/2006, 12h23
  2. [VBA-E]Eviter d'updater un fichiers excel qui a des liens
    Par tinose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2006, 19h27
  3. Réponses: 1
    Dernier message: 31/03/2006, 08h37
  4. Generation automatique d'un fichier excel
    Par Morphine dans le forum Access
    Réponses: 8
    Dernier message: 24/03/2006, 10h09
  5. [VBA]Lien entre fichiers excel : Update en VBA
    Par criocaps dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/01/2006, 09h07

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