UpdateProgress et PostBackTrigger
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:
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!