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 :

[VS 2003]passage de parametre entre VB.net et Javascript


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 142
    Par défaut [VS 2003]passage de parametre entre VB.net et Javascript
    Bonjour touss le monde,
    Voila j'essaye de recuperer le choix d'un utilisateur quand on lui demande une confirmation, le code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Dim sb As New System.Text.StringBuilder
            sb.Append("<script language='javascript'>")
            sb.Append("if (confirm('" & final & "'))")
            sb.Append("{document.getElementById('hide').value = 'oui';}")
            sb.Append("</script>")
     
            System.Web.HttpContext.Current.Response.Clear()
            System.Web.HttpContext.Current.Response.Write(sb)
    Le 'hide' est une balaise :<input> de type hidden.Mon problem c'est que quand je click sur la confirmation il m'affiche un message :
    document.getElementById(). a la valeur null ou n'est pas un objet .
    et c'est normal car le code javascript s'execute avant le load du formulaire c'est a dire que le hide n'existe pas.alors je cherche un moyenne d'executer mon code apres le chargement du formulaire.
    PS: on peut utiliser un
    Page.ClientScript.registerclientscriptblock
    mais je ne croit pas que je peut l'utiliser sous VS 2003 AS.NET 1.
    Je soulicite votre aide et merci.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Bonjour ,

    Essaye de le faire dans l’événement : PreRender de ta page, comme ça t'es sûr que ton code sera exécuté après le Load de ta page et la résolution des événements de la page.

    Bon courage.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 142
    Par défaut
    Bonjour,
    Mettre un even PreRender pour le button ne changera rien, mon code ce trouve dans le sub d'un button et il doit s'executer quand je click sur ce button ,alors je ne trouve pas l'interet de mettre un PreRender .

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Bonjour ,

    et c'est normal car le code javascript s’exécute avant le load du formulaire c'est a dire que le hide n'existe pas.alors je cherche un moyenne d’exécuter mon code après le chargement du formulaire.
    Et même si ton code existe dans le sub de ton Button, que est ce t'empêche de le faire sortir ? si par exemple tu récupère des données dans ton sub tu peut bien les stocker dans des variables globales a ta page et les réutiliser en dehors de ta méthode sub etc ....

    D'après mes souvenir et si je me trompe pas : je pense même avec le code suivant directement dans ta page ASP ça peut fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script type="text/javascript">
    if (confirm('<% final %> '))
            {document.getElementById('hide').value = 'oui';}
    </script>
    Avec final une variable de la page ...
    A mettre à la fin de ta page et syntaxe à verifier ......

    Cdt,

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 142
    Par défaut
    Peut etre que j'ai mal explique mon probleme, parceque ce que je cherche a faire c'est simplement la transmision de la valeur d'une varibale entre Javascript et asp.net(VB),voila:
    J'ai un button "Enregistrement" qui va ce connecter a la BDD et faire un test si la valeur a enregistrer existe deja dans la BDD alors il doit m'afficher une fenetre Javascripte (Confirm()) qui demande a l'utilisateur si il veut supprimer l'enregistrement actuel et le remplacer ou bien non.c'est ici que mon code intervient je veux savoir sont choix alors j'ai creer une balaise "hidden" qui va m'aide a connaitre sont choix.mais le probleme c'est que quand je click sur le button "enregistrement" il execute d'abord le code et les fonctions apres il load mon formulaire et moi je cherche a faire l'invers charger mon formulaire et executer mon code.je ne sais pas si il existe un evenement quand peut utiliser pour ce button pour qu'il ne puisse pas s'executer que a la fin du load de formulaire.
    j'espere etre claire
    et Merci

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    bonjour,

    J'ai bien compris ton souci, mais est ce que tu a bien compris mon poste :

    Le passage de paramètre entre Asp.net et JavaScript ça se passe comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script language="javascript">
    	var variableJavascript;
    	var uneAutreVariableJavascript ;
    	variableJavascript = '<%# variableDotNet %>';
    	uneAutreVariableJavascript = '<%# Session["clédesession"].ToString() %>';
    </script>
    Source : http://dotnet.developpez.com/faq/asp...tandcodebehind

    Comme indiqué dans cette source :
    définir une propriété au niveau d'une page ou encore de passer directement tout autre élément auquel vous avez accès dans votre page
    D'un autre coté : je viens de me rendre compte d'un autre point
    est ce que ta balise 'Hiden' est déclarée avant ton Button ou après ?? parce que elle doit être déclarée avant si tu veut utiliser ton code et c'est pareil aussi pour la méthode JS 'confirm'

    Vérifie déjà ça et si ça marche pas sinon tu peut essayer avec ce que je t'es proposé

    Bon courage

  7. #7
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 142
    Par défaut
    Merci pour le lien ca va m'aider beaucoup dans mes recherche,pour ton code c'est :passer le contenu d'une variable ASP.NET à du javascript ;pas l'invers (c'est ce que je cherche a faire moi ),et oui j'ai bien declarer ma balaise "hide" avant le button.je croit que je vais essayer de passer par l'url car rien ne fonction avec ces variables

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    J'ai l'impression que tu mélange les choses :

    Ce que je t'es proposé moi c'est exactement pareil que le lien que je t'es envoyé

    Passage de paramètre de Asp.net à JavaScript et pas l'inverse

    Tu peut modifier mon code par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script type="text/javascript">
    if (confirm('<%# variableDotNet %> '))
            {document.getElementById('hide').value = 'oui';}
    </script>
    Et c'est pareil et je parle bien de Asp.net Vers Js


    J’espère etre clair cette fois ci

  9. #9
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 142
    Par défaut
    Voici mon code:
    Code behind
    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
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load       
                Dim MsgBox1 As New MsgAlert 
                If hide.Value = "oui" Then
                    MsgBox1.afficher("bingo", Nothing)
                End If
            hide.Value = ""
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                ......... 
       if Myread.Read =true then 
            confirm("Voulez vous remplacer l'enregistrement ?")
        end if
     End Sub
        Public Sub confirm(ByVal msg As String)
            Dim final As String = msg 
            Dim sb As New System.Text.StringBuilder
            sb.Append("<script language='javascript'>")
            sb.Append("if (confirm('" & final & "'))")
            sb.Append("{document.getElementById('hide').value = 'oui';}")
            sb.Append("</script>")
     
            System.Web.HttpContext.Current.Response.Clear()
            System.Web.HttpContext.Current.Response.Write(sb)
        End Sub
    PS:MsgAlert est une fonction simple pour afficher des alerts javascript
    Code HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <input id="hide" type="hidden" name="hide" runat="server">
    <asp:button id="Button1" runat="server" Text="Button"></asp:button>
    <asp:TextBox id="txtref" runat="server"></asp:TextBox>
    </form>
    </body>

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Avec le code c'est mieux !

    Mais tu mélange bcp bcp de choses, moi je croyait au début que ta méthode 'confirm' est une méthode JS qui retourne un booléen ... Mais tu fait appel à une méthode Serveur "confirm" dans ton code JS il faut un miracle pour que ca marche comme tu le fait

    Tu peut faire appel à une méthode coté serveur en s'appuyant sur le lien que je t'es envoyé. par contre ça marchera jamais avec ta facon de faire. En plus de ça t'aura une boucle infini parce que tu fait un appel récursif sur la méthode "confirm".

    En manque de temps j'essayerai après de te donner plus de détails

    Bon courage

  11. #11
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 142
    Par défaut
    Bonjour,
    Merci pour l'explication,Est ce que il y a d'autre facon de le faire sans passer par cette methode ?plus simple

  12. #12
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 142
    Par défaut
    Enfin Probleme resolu ,Merci Sou_rif pour tes conseils précieux et ton aide.
    voici le code final :
    dans la page html entre les balise <head></head> j'ai declarer mon code JS:
    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
    <script language="javascript">	
        function ConfirmSubmit(msg,Num)
        {
        var jsVar ='oui'; 
        if (num==1)
    	   {alert(msg);}
    	else if (num==3)
    	   {alert(msg);}
    	else
    	   if(confirm(msg))
    		{
    		 __doPostBack('callPostBack', jsVar);
    		}     
        }
    </script>
    coté code behined:
    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
    42
    43
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim MsgBox1 As New MsgAlert
     
            Me.GetPostBackEventReference(Me, "arg")
            If IsPostBack Then
                Dim eventTarget As String = Me.Request("__EVENTTARGET")
                Dim eventArgument As String = Me.Request("__EVENTARGUMENT")
     
                If eventTarget <> String.Empty AndAlso eventTarget = "callPostBack" Then
                    If eventArgument <> String.Empty Then
                        hide.Value = eventArgument
                    End If
                End If
            End If
     
            If hide.Value = "oui" Then
                MsgBox1.afficher("bingo", Nothing)
            End If
            hide.Value = ""
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            .........
          If IsNothing(txtref.Text) Or txtref.Text = "" Then
                confirm("Le champ est vide ... ", 1)
          else
                ........
                If  Myread.Read =true Then
                confirm("Enregistrement existe deja,voulez-vous le remplacer ? : ", 2)
            Else
                confirm("Enregistrement effectuee", 3)
            End If
          End If  
     End Sub
        Public Sub confirm(ByVal msg As String, ByVal Num As Integer)
     
            Dim sb As New System.Text.StringBuilder
            sb.Append("<script language='javascript'>")
            sb.Append("ConfirmSubmit('" & msg & "'," & Num & ")")
            sb.Append("</script>")
     
            Page.RegisterClientScriptBlock("MessageBox", sb.ToString())
        End Sub

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Bonjour,

    Attention : tu a toujours dans ton code JS un
    Mais puisque tua compris le principe ca devrait aller pour toi pour bien affiner ton code

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/06/2006, 21h45
  2. Passage de parametre entre deux formulaires
    Par Rcanada dans le forum Access
    Réponses: 3
    Dernier message: 28/04/2006, 11h05
  3. [C#] Passage de paramètre entre forms
    Par farfadet dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/02/2006, 14h36
  4. passage de parametre entre deux page asp
    Par tomtom25 dans le forum ASP
    Réponses: 4
    Dernier message: 01/04/2005, 16h16
  5. sql dynamic : passage de parametre entre quotes
    Par de LANFRANCHI dans le forum SQL
    Réponses: 12
    Dernier message: 26/05/2004, 15h09

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