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.
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.
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; }
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.
Partager