Bonjour à tous, je réalise une petite application qui génère des fichiers Excel et j'ai besoin de permettre au client de les télécharger après. Pour cela aucun problème, cela fonctionne très bien.
Le soucis viens du fait que des fois la générations de ces fichiers est parfois longue (une dizaine de seconde). Et je voudrez afficher un Gif de chargement le temps que le serveur génère le fichiers.
Je m'explique :
Lorsque le client click sur générer Excel il lance ce javascript :
Cela me permet d'ouvrir une page aspx qui contient le code de génération de mon fichier Excel en fonction du 'CodeRequete' passé en paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function GoExcel(Coderequete) { window.open('GoExcel.aspx?CodeRequete=' + Coderequete, 'GoExcel', 'toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0,width=' + screen.width + ',height=' + screen.height); }
Ma page GoExcel.aspx contient le code suivant :
Juste un petit Texte disant de patienter et un Gif qui est en fait une barre de chargement. Et enfin ds le code behind de ma page GoExcel jai ceci :
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 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GoExcel.aspx.cs" Inherits="GestionPlanning.Web.GoExcel2" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Génération de fichier Excel</title> </head> <body> <form id="form1" runat="server"> <div> <center> <h2>Création du fichier Excel veuillez patienter svp !</h2> <asp:Image ID="Image1" Height="100" Width="100" runat="server" ImageUrl="~/ajax-loader.gif"/> </center> </div> </form> </body> </html>
j'attend que l'image soit load avant de lancer mon code behind puis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 protected void Page_Load(object sender, EventArgs e) { Image1.Load += new EventHandler(Image1_Load); }
Le problème est que mon gif ne s'affiche pas, la page reste blanche le temps de la génération du fichier Excel puis se coupe mais à aucun moment elle n'affiche mon gif ou quoique se soit d'autre. J'ai essayer avec le init ou le prerender de l'image afin d'être sur qu'elle soit "prête" avant de lancer le code behind mais rien n'y fait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void Image1_Load(object sender, EventArgs e) {//Generation de mon fichier EXCEL puis telechargement du fichier et fermeture de la page (qui fonctionne bien) }
Je ne connait pas trop le fonctionnement et l'odre d'execution d'une page aspnet donc SI quelqu'un pouvez m'éclairer
Merci a tous, Cordialement MoZo
Partager