Bonjour
Je commence à développer en .NET et j'éprouve quelques difficultés avec les dialogues. J'utilise les confirm() et alert() pour effectuer une validation et confirmation avant d'exécuter toute action côté serveur par l'entremise d'un bouton submit (fonction onclick()), et jusque là, tout va bien. J'illustre donc mon problème à l'aide d'un exemple : J'aimerais apporter des suggestion à l'usager une fois le code côté serveur exécuté, selon le résultat de l'exécution. Je me suis donc crée une classe qui gère les dialogues(alert() et confirm(), voir code plus bas) avec le client à l'aide des fonctions RegisterClientScriptBlock et RegisterStartupScript. Le problème est la fonction Confirm; je désire mettre la valeur de la décision de l'usager dans un champ caché sur la page, et exécuter du code selon la décision de l'usager dans le page load(un peu comme dans la FAQ). Le problème est que le page load s'exécute avant le script, et la valeur de la décision n'est alors pas prise en charge par le page_load, elle n'est prise en charge que lors du prochain postback. J'aimerais savoir s'il existe une façon d'appeller un page_load ou d'exécuter un postback en javascript. Également, je trouve ma façon de procéder plutôt déficiante, mais c'est la seule que j'ai trouvé pour réussir à avoir un dialogue avec l'usager après l'exécution de code.
Merci d'avance!![]()
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 Function Alert(ByVal Msg As String, ByVal Pa As Page) 'Script à insérer (javascript de la fonction alert) Dim sb As New System.Text.StringBuilder sb.Append("<script language= javaScript>") sb.Append("<!-- " & vbCrLf) sb.Append(" alert(" & """" & Msg & """" & ");" & vbCrLf) sb.Append("--></script>" & vbCrLf) Pa.RegisterClientScriptBlock("Al", sb.ToString) End Function Function Confirm(ByVal Msg As String, ByVal TBName As String, ByVal Pa As Page) 'Script à insérer (javascript de la fonction confirm) Dim sb As New System.Text.StringBuilder sb.Append("<script language= javaScript>") sb.Append("<!-- " & vbCrLf) sb.Append(" if(confirm(" & """" & Msg & """" & "))" & vbCrLf) sb.Append(" {document.getElementById(" & """" & TBName & """" & ").value='true';}" & vbCrLf) sb.Append(" else{document.getElementById(" & """" & TBName & """" & ").value='false';}" & vbCrLf) 'sb.Append(" location.reload;" & vbCrLf) sb.Append("--></script>" & vbCrLf) ' Pas le choix d'utiliser StartupScript car le hidden field contenant la décision ne sera pas render... Pa.RegisterStartupScript("Conf", sb.ToString) End Function
Partager