Bonjour à tous,
J'essaye de mettre en place un modalpopup (Ajax) "waiting" durant les traitements un peu long de mon site.
J'utilise donc un modalpopup avec un message et un Gif animé (avec fonction javascript pour que l'animation se fasse durant le postback) qui s'affiche lorsque l'on clique sur un bouton (avec OnclientClick) via une fonction Javascript.
Lorsque l'on clique sur le bouton, mon ModalPopUp s'affiche bien et la gif animée est bien animée.
Les traitements (maj de la BDD, génération d'un PDF à partir d'un rapport CrystalReport et Download du PDF) de la procédure qui s'execute lors du clique du bouton se passe bien, sauf qu'à la fin de ma procédure, la commande qui doit permettre de cacher le modalpopup ne fait rien (pas de message d'erreur...).
Le problème vient de ma fonction qui sert à downloader le fichier PDF sur le poste client car quand je supprime cette fonction, plus de problème.
Ci-dessous, le code de cette fonction :
Je ne trouve pas d'explication à mon problème et donc de solution...
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 Private Function Upload(ByVal fichier As String, ByVal ext As String, ByVal repertoire As String) As Boolean ' On ouvre le fichier. Dim iStream As New System.IO.FileStream("C:\Inetpub\wwwroot\" & repertoire & fichier & "." & ext, System.IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read) Dim dataToRead As Long = iStream.Length Dim length As Integer 'Response.ContentType = "application/octet-stream" Response.ContentType = "application/pdf" Response.AddHeader("Content-Disposition", "attachment; filename=" & fichier & "." & ext) Dim buffer(10000) As Byte ' on charge le fichier et on envoi par paquet de 10000. While dataToRead > 0 'on vérifie si le client est toujours connecté If Response.IsClientConnected Then length = iStream.Read(buffer, 0, 10000) Response.OutputStream.Write(buffer, 0, length) Response.Flush() ReDim buffer(10000) ' Clear the buffer dataToRead = dataToRead - length Else 'si le client n'est plus connecté dataToRead = -1 Return False End If End While Response.Close() iStream.Close() Return True End Function
Par avance, merci.
Partager