Bonjour,

Je lance un script javascript via la méthode RegisterStartupScript et je récupère la valeur du confirm du script via un HtmlInputHidden, comme vous le verrez ci-dessous.

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
protected void BtUpload_Click(object sender, EventArgs e)
    {
        if (IsAValidFile())
        {
            //If file already exists => Replace or cancel the action ?
            bool ReplaceFile = false;
            if (IsAlreadyUploaded())
            {
                if (WantToReplaceFile() == "Oui")
                {
                    ReplaceFile = true;
                }
                else
                {
                    ReplaceFile = false;
                }
 
                UploadAFile();
            }
        }
    }
 
private bool IsAlreadyUploaded()
    {
        return true;
    }
 
    private string WantToReplaceFile()
    {
        //To get value of pop-up in case of upload a file already existing on the server.
        ConfirmReplace = new HtmlInputHidden();
        ConfirmReplace.ID = "1";
        ConfirmReplace.Name = "ConfirmReplace";
        this.Controls.Add(ConfirmReplace);
 
        //Ask for replace the file or cancel the action.
        string scriptJS = "<script language=\"JavaScript\">document.getElementById(\"" + ConfirmReplace.ClientID.ToString() + "\").value = confirm(\"" + Resources.PortalResources.LbUploadRejected + "\");" + Page.GetPostBackEventReference(ConfirmReplace) + "</script>";
        Page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "test", scriptJS);
 
        return ConfirmReplace.Value;        
    }
Par contre via le debugger j'ai pu observé que le code de la méthode BtUpload_Click s'exécute entiérement avant que la pop-up confirm javascript ne s'affiche.
Je souhaiterais que la pop-up s'affiche avant l'exécution de UploadAFile(), afin de l'exécuter conditionnellement en fonction du retour de confirm.

Je me demandais si pour cela je ne devrais pas plutôt exécuter la méthode RegisterClientScriptBlock ?
Ou bien alors dois je créer un event qui sera déclencher dans BtUpload_Click et qui s'occupera de lancer UploadAFile ? Mais dans ce cas je ne sais plus si la méthode BtUpload_Click se terminera ou non avant de passer dans la nouvelle methode associé à l'event ?

Avez vous d'autres idées ?

Merci d'avance pour votre aide.

Cédric.