Accueil > Forum > > > > Download et UpdatePanel
Download et UpdatePanel
vendredi 5 janvier 2007 à 16:59:39 |
Download et UpdatePanel

Praxe
|
Bonjour ! Mon souci est le suivant : j'ai un bouton qui me permet de télécharger un fichier qui est sur le serveur. J'utilise ce code (lors du clic sur le bouton) : Response.Clear(); Response.AppendHeader("content-disposition","attachment;filename=\"" + System.IO.Path.GetFileName(sPath) + "\""); Response.ContentType = "application/pdf"; Response.WriteFile(sPath); Response.End(); Pas de problème lorsque ce bouton est à l'extérieur d'un updatepanel. Lorsqu'il est placé dans un updatepanel, la fenêtre qui propose le téléchargement ne s'affiche pas. En mettant dans un try/catch le code plus haut, ca plante au niveau du Response.End(); Il doit y avoir un concept d'atlas/ajax qui m'échappe (surement même :D). Est ce que quelqu'un pourrait m'éclairer ? Merci d'avance
|
|
vendredi 5 janvier 2007 à 22:34:10 |
Re : Download et UpdatePanel

jesusonline
|
Bonsoir, c'est tout à fait normal, quand tu fais un response.clear() etc... tu modifies le flux complet de ta response ... Or le comportement d'un updatepanel nécessite que l'on renvoie un flux spécifique qui contient une partie de la page, donc tu ne peux pas jouer avec la réponse, si tu veux faire un truc du genre il faut faire un scriptmanager.registerstartupscript(this.gettype(), "download","window.open('lapage.ashx?fileID', '', ''')", true); ensuite il te faut faire un handler (lapage.ashx) pour récupérer le fichier à partir de son id Cyril - MVS - MCP
|
|
lundi 8 janvier 2007 à 12:12:53 |
Re : Download et UpdatePanel

Praxe
|
Merci de ta réponse cyril. A vrai dire je ne sais pas du tout utiliser l'extension "ashx". Donc il va falloir que je regarde ça d'abord, même si je vois pas trop comment réaliser ça pour l'instant. Sinon j'ai trouvé une autre solution entre temps ( [ Lien ]) Dans le Page_Load : LinkButton ctrl = (LinkButton)Page.FindControl("ALinkButton");ALinkButton.Click += newEventHandler(Button1_Click);Button1.Attributes.Add( "onclick", Page.ClientScript.GetPostBackEventReference(ALinkButton, ""));
protectedvoid Button1_Click(object sender, EventArgs e){ Response.Clear(); Response.AppendHeader( "content-disposition", "attachment;filename=\"" + System.IO.Path.GetFileName(sPath) + "\"");Response.ContentType = "application/pdf";Response.WriteFile(sPath); Response.Flush(); Response.End(); }
où button1 se situe dans l'update panel et ALinkButton à l'extérieur. Bon ca marche plutot bien, sauf que ( ) mon bouton se situe dans une cellule d'un gridview qui se situe lui même dans un updatepanel. Lorsque j'applique la solution ci-dessus j'ai ce message d'erreur : "Argument de publication ou de rappel non valide. La validation d'événement est activée via <pages enableEventvalidation="true"/> dans la configuration etc ..."
|
|
lundi 8 janvier 2007 à 13:25:09 |
Re : Download et UpdatePanel

jesusonline
|
Réponse acceptée !
Bonjour, As tu compris la solution proposé ? car cette solution est vraiment stupide ... la seule solution que tu as est de passer par une page externe ... un .ashx est un handler pur et dur, une page est aussi un handler mais elle charge beaucoup de chose (tout le mécanisme de controle) alors qu'un .ashx ne charge rien de tout ca tu as accès seulement à l'objet response. Dans le processRequest tu peux accéder à context.Request.QueryString["FileID"] ensuite à partir de cette id tu peux écrire dans context.Response.WriteFile ... pour des raisons de sécurité ne passe surtout pas le path du fichier en paramètre ... Cyril - MVS - MCP
|
|
lundi 8 janvier 2007 à 14:47:29 |
Re : Download et UpdatePanel

Praxe
|
Ok merci bien ! Ta solution est bien meilleure en effet et ça fait exactement ce que je voulais. En plus j'ai pu découvrir le .ashx grâce à toi. J'ai pas trop bien compris la solution proposée plus haut c'est vrai  . Enfin j'imagine que l'astuce doit être dans la fonction GetPostBackEventReference. En gros la fonction où il y a tous les response machin est appelé par le linkbutton qui, lui, est situé en dehors de l'updatepanel. Encore merci !
|
|
lundi 8 janvier 2007 à 15:10:25 |
Re : Download et UpdatePanel

jesusonline
|
non meme pas la solution plus haut réinvente la roue et fais du grand n'importe quoi, tu peux oublier sans soucis. Cyril - MVS - MCP
|
|
mercredi 5 mars 2008 à 13:17:57 |
Re : Download et UpdatePanel

magicbassfr
|
Bonjour,
j'ai appliqué la méthode via un ashx dont voici le code:
public void ProcessRequest (HttpContext context) { string fileName = System.IO.Path.Combine(FileSystem.XlsDirectory, context.Server.HtmlDecode(context.Request.QueryString[0]) + ".xls"); context.Response.ClearHeaders(); context.Response.Clear(); context.Response.ContentType = "application/vnd.ms-excel"; context.Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); context.Response.WriteFile(fileName); context.Response.End(); }
J'appelle le handler via un Response.Redirect(....ashx);
Et globalement ça marche bien (merci!) mais internet explorer bloque systématiquement le premier transfert (popup en haut: "pour des raisons de sécurité Internet Explorer a bloqué le téléchargement...")
Je ne comprends pas pourquoi ce comportement ne survient que dans ce cas: j'ai essayé la même procédure sans ahsx et hors updatePanel, tout se passe impec... visiblement c'est lié à UpdatePanel/ashx.
Je sèche complètement.
Vous pouvez m'aider? merci d'avance.
|
|
mercredi 5 mars 2008 à 13:41:13 |
Re : Download et UpdatePanel
|
mardi 16 décembre 2008 à 16:10:10 |
Re : Download et UpdatePanel

karn
|
Bonjour, j'ai eu besoin d'une même solution pour pouvoir télécharger des fichiers dans une page ajax. Les fichiers etant dans un imagebutton lui meme dans un datagrid.
voila la solution en 1 ligne :
ScriptManager1.RegisterPostBackControl(monDataGrid)
cela permet d'enregistrer le controle qui autorisera le post complet de la page et non plus partiellement.
dans ce cas, la pagination du datagrid ne fonctionne plus en ajax, la solution est d'enregistrer uniquement l'imageButton du datagrid :
Private Sub monDataGrid_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles monDataGrid.ItemDataBound If e.Item.ItemIndex >= 0 Then ScriptManager1.RegisterPostBackControl(e.Item.FindControl("monImageButon")) End If End Sub
|
|
mardi 13 janvier 2009 à 13:14:09 |
Re : Download et UpdatePanel

scilaci
|
Salut, je sais que ce poste date. Et je ne sais pas si je fais bien de posté ici.
Mais j'ai un petit problème avec un fichier ashx pour le download de fichier de type PDF
Lorsque j'affiche ma page et que je clique sur le lien du pdf à télécharger tout se passe très bien. J'arrive à faire un "Save file as" ou un "Open file". jusque la tout vas bien. Mais par la suite, lorsque je clique sur un autre lien qui n'a rien avoir avec le téléchargement de PDF, L'application m'affiche à nouveau le dialog box du fichier pdf précédemment ouvert.
Si vous avez une petite idée, d'où pourrais venir le problème.
Merci pour vos future réponse.
|
|
Cette discussion est classée dans : bouton, code, response, download, updatepanel
Répondre à ce message
Sujets en rapport avec ce message
UpdatePanel / Alertes javascript [ par ludo g ]
Bonjour,Je cherche un moyen pour afficher une alerte javascript à partir du code behind, plus précisément à partir du code d'un bouton se situant dans
javascript dans un updatepanel [ par maXrez ]
Bonjour,Je suis actuellement en train d'integrer l'ajax dans un de mes sites web. Celui ci est constitué d'une page avec différents userControls que j
bouton download [ par yogui411 ]
Bonjour,J'ai dejà utilisé le bouton fileupload pour pouvoir charger des fichiers. Je voulais savoir s'il existait l'équivalent pour sauver des fichier
Problème : WebControl dans un updatepanel [ par hysteria31 ]
Bonjour,mon problème est le suivant.J'ai une page principale (Default.aspx) contenant un updatepanel.Lorsque je clique sur un bouton situé dans ma pag
Bouton : Rechargement de page [ par meninblate ]
Bonjour,J'aimerais simplement que le clic sur un bouton n'entraîne pas le rechargement de la page.Car dans mon code j'ai une variable de type "ArrayLi
Postback après download [ par bmortada ]
Bonjour,je voudrai rafraichir ma page après un download,Response.ContentType = "Application/x-excel";Response.AddHeader(<font color="#a31515"
Updatepanel : récupérer l'évènement clic d'un bouton créé dynamiquement [ par DevilYann ]
Bonjour,Ma question est simple :Peut-on récupérer l'évènement d'un bouton créé dynamiquement dans un updatepanel ?Avant de mettre l'updatepanel, je ré
linkboutoun et updatepanel [ par Tintounet ]
bonjour.Je suis débutant en asp.net et j'essaye de dévellopper un site qui ajoute dynamiquement des linkbutton dans un placeholder afin de permettre l
UpdatePanel et FileUpload [ par gabiset ]
Bonjour,J'ai une page sur laquelle j'ai un contrôle FileUpload et un bouton pour lancer le upload du fichier choisi par le client. Tout marche très bi
Livres en rapport
|
Derniers Blogs
[MIX 2010] - TELECHARGEZ INTERNET EXPLORER 9 EN PREVIEW ![MIX 2010] - TELECHARGEZ INTERNET EXPLORER 9 EN PREVIEW ! par redo
La Preview de Windows Explorer 9 est maintenant disponible à l'adresse suivante : http://ie.microsoft.com/testdrive/ Cette version ne nécessite pas un redémarrage de votre machine pour être exploitée . Cette version est fonctionnelle mais reste cependant ...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - KEYNOTE DAY 2 ONLINE : WINDOWS INTERNET EXPLORER 9, JQUERY, ODATA ET DALLAS CTP2 ![MIX 2010] - KEYNOTE DAY 2 ONLINE : WINDOWS INTERNET EXPLORER 9, JQUERY, ODATA ET DALLAS CTP2 ! par redo
Dans la lignée du premier keynote, retrouvez la vidéo du second keynote en ligne : Visionnez la vidéo à l'url suivante : http://www.microsoft.com/presspass/events/mix/VideoGallery.aspx Vous y retrouverez ainsi les speakers Scott Guthrie, Dean Hachamovitch...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - RETOUR D'EXPéRIENCE DéVELOPPEMENT SEESMIC SUR WINDOWS PHONE 7[MIX 2010] - RETOUR D'EXPéRIENCE DéVELOPPEMENT SEESMIC SUR WINDOWS PHONE 7 par redo
En avant première, Loic le retour d'expérience de Loïc Le Meur du portage de l'application http://seesmic.com/ sur plateforme Windows Phone 7 . c'était d'ailleurs une des rares opportunités de tester, voir toucher le nouveau device . voyez par vous-même :...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - LE KEYNOTE DAY 1 DISPONIBLE ONLINE ![MIX 2010] - LE KEYNOTE DAY 1 DISPONIBLE ONLINE ! par redo
Si tout comme moi, vous avez manqué de peu le premier keynote du Microsoft Mix 2010, je vous invite à prendre deux heure et le consulter ci-dessous . Visionnez le Keynote à l'url suivante : http://www.microsoft.com/Presspass/events/mix/videoGallery.aspx?c...
Cliquez pour lire la suite de l'article par redo VISUAL STUDIO TALK SHOW: EF4VISUAL STUDIO TALK SHOW: EF4 par Matthieu MEZIL
La semaine dernière, j'étais à Montréal pour y animer des conférences sur Entity Framework. J'en ai profité pour enregister un podcast Visual Studio Talk Show que vous pouvez retrouver ici ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL
Forum
J2EEJ2EE par hassensana
Cliquez pour lire la suite par hassensana VLAN NATIFVLAN NATIF par hamduch1988
Cliquez pour lire la suite par hamduch1988
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
Comparez les prix

HTC Magic
Entre 429€ et 429€
|