IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VB.Net] Probleme avec dialogues (confirm et alert)


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Par d�faut [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!

    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

  2. #2
    Membre �m�rite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par d�faut 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.

    �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 :)

  3. #3
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Par d�faut
    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
    Je dois donc comprendre que �a ne se peut pas de cette fa�on?

    La seule solution que je vois alors serait de ne plus utiliser la fonction confirm, mais une fen�tre modale qui simule le confirm et qui transfert la valeur de la d�cision dans un champ cach� du c�t� de la page parent... ainsi au moment du close de la fen�tre modale, un postback sera effectu� par la page parent et la valeur sera alors prise en consid�ration car elle aura �t� ajout�e par la fen�tre modale...

    Est-ce que �a a du sens? Merci d'avance!

  4. #4
    Membre �m�rite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par d�faut
    Citation Envoy� par crackity_jones666
    Je dois donc comprendre que �a ne se peut pas de cette fa�on?
    Yup :)

    La seule solution que je vois alors serait de ne plus utiliser la fonction confirm, mais une fen�tre modale qui simule le confirm et qui transfert la valeur de la d�cision dans un champ cach� du c�t� de la page parent... ainsi au moment du close de la fen�tre modale, un postback sera effectu� par la page parent et la valeur sera alors prise en consid�ration car elle aura �t� ajout�e par la fen�tre modale...
    Par exemple vi. Mais si tu as juste besoin de la valeur de retour du confirm, tu devrais pouvoir tout faire d'un coup dans le onclick de ton bouton. Le confirm, le stockage du r�sultat dans un champ cach� et le form.submit()

    Mais de toute fa�on, y a pas le choix. Si tu as besoin d'un traitement c�t� serveur, il faut lui rendre la main, et �a passe par un rechargement de la page :)

  5. #5
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Par d�faut
    Mais si tu as juste besoin de la valeur de retour du confirm, tu devrais pouvoir tout faire d'un coup dans le onclick de ton bouton. Le confirm, le stockage du r�sultat dans un champ cach� et le form.submit()
    Je ne suis pas certain de m'�tre bien exprim�....

    Il y a d�j� un confirm dans le onclick() de mon bouton qui fonctionne tr�s bien. C'est le deuxi�me confirm provenant de ma fonction VB appell� � la fin de mon form submit dont je ne peux retrouver le r�sultat.

    En gros j'ai donc:
    1) OnClick du bouton poss�de un confirm d�terminant si l'usager veut bien effectuer cette op�ration
    2) Le code associ� au bouton sur le serveur s'ex�cute alors si le premier confirm est affirmatif
    3) � la fin de l'ex�cution du code sur le serveur, j'appelle ma fonction confirm() en vb selon le r�sultat de l'action effectu�, qui ajoute du code javascript � la fin de la page ex�cutant un autre confirm. C'est la valeur de ce confirm que je ne peux retrouver car il s'ex�cute apr�s le pageload et qu'aucun rechargement n'est possible...

    D�sol� pour les impr�cisions, je cherches toujours comment il serait possible d'effectuer un rechargement apr�s la d�cision prise par l'usager lors du deuxi�me confirm.

    Merci beaucoup pour l'aide rapide Maniak, c'est tr�s appr�ci�

  6. #6
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Par d�faut
    Bon...

    J'ai essay� plein de trucs et rien � faire, il n'est toujours pas possible d'y aller de cette fa�on.

    Voici ma nouvelle solution : Il s'agit de cr�er une nouvelle form qui g�re le dialogue avec l'usager. Cette form sera appell� � la fin du code sur le serveur par un registerclientscript qui popera une fen�tre modale(va savoir pourquoi, un windows.open normal est bloqu� par ma barre de popups google). La form simule un dialogue confirm, mais poss�de �galement du code derri�re les boutons sur le serveur. C'est ce code qui r�agira � la d�cision de l'usager et non plus le page_load de la page appellante. Bon, �a fait un peu plus de forms dans le projet (surtout qu'une fen�tre modale doit se trouver dans un frame, sinon beaucoup de difficult�es en postback et en fermeture, et ce frame r�f�re � la form qui simule le confirm) mais les specs se doivent d'�tre respect�es!

    PS : Voici une suggestion pour ceux qui cherchent des outils pour les dialogues en .NET : http://www.metabuilders.com

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [VB.NET] Probleme avec controle Listbox ??
    Par Aspic dans le forum VB.NET
    R�ponses: 4
    Dernier message: 10/11/2005, 13h30
  2. [ADO.NET] Problème avec Insert dans base de données
    Par mpascolo dans le forum Acc�s aux donn�es
    R�ponses: 9
    Dernier message: 24/01/2005, 09h36
  3. [VB.NET] Probleme avec les fichiers!!
    Par ludovic85 dans le forum Windows Forms
    R�ponses: 2
    Dernier message: 20/01/2005, 17h12
  4. R�ponses: 2
    Dernier message: 02/09/2004, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo