[VB.Net] Probleme avec dialogues (confirm et alert)
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! :D
Code:
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 |
Re: [ASPX] Probleme avec dialogues (confirm et alert)
Citation:
Envoyé par crackity_jones666
J'aimerais savoir s'il existe une façon d'appeller un page_load ou d'exécuter un postback en javascript.
Nope.
Citation:
É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.
Manke de bol, après l'exécution du code, tu as le choix entre te débrouiller avec le javascript client, ou recharger la page si tu as besoin d'exécuter du code côté serveur. À toi de voir comment combiner ça au mieux pour ce dont tu as besoin :)