Petit problème et je vous explique. J'ai un linkbutton qui appelle une fonction me permettant de zippper des fichiers et d'envoyer ce zip à l'utilisateur. Comme le UpdateProgress ne fonctionne pas avec un PostBackTrigger, j'ai fait une fonction en javascript pour afficher l'updateProgress pendant le postback (postback obligatoire pour envoyer le fichier à l'utilisateur).

Mon problème est que je ne réussi pas à le rendre invisible lorsque mon traitement est terminé. J'ai tenté de changer sa visibilité dans le code-behind, d'enregistrer un script (qui ne semble pas fonctionner car j'envoi déjà un fichier sur le response)... voici mon code:

Page aspx
Code :
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
35
36
37
38
39
<script type="text/javascript">
 
    var updateProgress = null;
 
    function postbackButtonClick() {
 
        updateProgress = $find("<%= progLinkExportMels.ClientID %>");
        window.setTimeout("updateProgress.set_visible(true)", updateProgress.get_displayAfter());
        return true
 
    }
 
</script>
...
<asp:UpdatePanel ID="upLinkExportMels" runat="server" UpdateMode="Conditional" RenderMode="Inline">
 
    <ContentTemplate>
    <asp:LinkButton ID="lnkExportMels" runat="server" CssClass="TextBase" OnClientClick="return postbackButtonClick()" ClientIDMode="Static">Exécuter</asp:LinkButton>
    </ContentTemplate>
 
<Triggers><asp:postBackTrigger ControlID="lnkExportMels" /></Triggers>
 
</asp:UpdatePanel>
 
<asp:UpdateProgress AssociatedUpdatePanelID="upLinkExportMels" ID="progLinkExportMels" runat="server" DynamicLayout="false" >
 
    <ProgressTemplate>
 
        <div id="progressBackgroundFilter"></div>
 
        <div id="processMessage">... Traitement en cours ...<br /><br />
 
            <img alt="Chargement" src="App_Themes/images/ajax-loader_Long.gif" />
 
        </div>
 
    </ProgressTemplate>
 
</asp:UpdateProgress>
CS
Code VB.NET :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub lnkExportMels_Click(sender As Object, e As System.EventArgs) Handles lnkExportMels.Click
 
    Response.Clear()
    Response.BufferOutput = False
    Response.ContentType = "application/zip"
    Response.AddHeader("content-disposition", "filename=Test.zip")
 
    'On crée le Zip
    ...
 
    zip.Save(Response.OutputStream)
    Response.Close()
 
End Sub

Merci!