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 :
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
Je ne trouve pas d'explication à mon problème et donc de solution...

Par avance, merci.