Bonjour,
J'ai un repeater qui contient des LinkButton dont l'objectif est de permettre le téléchargement d'un fichier.
Ce repeater est contenu dans un composant similaire à un UpdatePanel.
J'ai une méthode qui s'execute lorsque l'utilisateur clique sur le bouton. Problème: j'ai une exception qui se lève dans ma méthode qui permet de forcer le téléchargement.
Voici le code que j'ai pour alimenter mon repeater:Unable to evaluate expression because the code is optimized
Et voici le code qui s'exécute lorsque l'utilisateur clique sur le bouton:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 this.fileRepeater.DataSource = listFiles; // -- Gestion du postback sur les liens de téléchargement // --------------------------------------------------------- for (int i = 0; i < fileRepeater.Items.Count; i++) { LinkButton linkButton = (LinkButton)fileRepeater.Items[i].FindControl("linkButton"); linkButton.CommandArgument = listFiles[i].SName; ScriptManager.GetCurrent(this.Page).RegisterPostBackControl(linkButton); }
Si quelqu'un a une idée du pourquoi du comment ... Et surtout une solution, je la veux bien !
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 private void forceDownload(string sFileName) { string sType = ""; FileInfo fi = null; try { // -- Récupération du fichier // -------------------------- fi = new System.IO.FileInfo(sFileName); switch (fi.Extension.ToLower()) { case ".htm": case ".html": sType = "text/HTML"; break; case ".txt": sType = "text/plain"; break; case ".pdf": sType = "Application/pdf"; break; case ".xls": sType = "Application/vnd.ms-excel"; break; case ".doc": case ".rtf": sType = "Application/ms-word"; break; } Response.AppendHeader("content-disposition", "attachment; filename=" + fi.Name); if (sType != "") Response.ContentType = sType; Response.BufferOutput = true; Response.WriteFile(sFileName); Response.End(); } catch (Exception ex) { throw new Exception("ThemeResultTreenode.forceDownload: " + ex.Message); }
Merci.
Partager