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.

Unable to evaluate expression because the code is optimized
Voici le code que j'ai pour alimenter mon repeater:
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);
                 }
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
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);
            }
Si quelqu'un a une idée du pourquoi du comment ... Et surtout une solution, je la veux bien !
Merci.