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 :

Appel d'une routine vb.Net avec un script javascript


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2016
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Appel d'une routine vb.Net avec un script javascript
    Bonjour
    Je bloque sur le problème suivant.
    J'ai un script JS.
    Prenons le cas classique suivant:
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script type="text/javascript" language="javascript">
            function ShowBox(){
                    if (confirm("do you want to go ahead ?") == true){
                         //do something
                         window.location.href = "Default.aspx";
                         return true;
                    }
                    else{
                        return false;
                    }
            }
        </script>
    J'aimerais que ce script appelle non pas la page Default.aspx mais une routine vb.net. Par exemple Test1
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub Test1(ByVal sender As Object, ByVal e As EventArgs)
           ..........................................
     End Sub
    Merci!

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 611
    Points : 9 744
    Points
    9 744
    Billets dans le blog
    3
    Par défaut
    Quelle version d'ASP.NET utilises-tu ? (MVC / WebForms…)
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2016
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Version ASP
    WebForms
    Vb.net
    Framework net 4.6.1
    Visual Studio Community 2017

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2016
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    J'ai effectué les tests suivants. Dans la page Contacts.aspx j'ai inséré:
    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
     
    <script type="text/javascript">
            function ShowBox(){
                    if (confirm("do you want to go ahead ?") == true){
                         //do something
     
                        PageMethods.Test1(onSuccess, onFailure);
     
                        function onSuccess(result) { alert("eee");}
     
                        function onFailure(result) { alert("failed"); }                                     
     
                    }
                    else{
                        return false;
                    }
            }
     
        </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:Button ID="Button3" runat="server" OnClientClick="ShowBox()"  Text="Test JS" />
    Dans site.master page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <asp:ScriptManager runat="server" EnablePageMethods="true">
    et enfin dans Contacts.aspx.vb:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Public Sub Test1(ByVal sender As Object, ByVal e As EventArgs)
     
         Label1.Text = "eee"
    End Sub
    RIEN!!!
    Seule la méthode PageMethods ne fonctionne pas. Le reste du code fonctionne parfaitement.

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 611
    Points : 9 744
    Points
    9 744
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Titus999 Voir le message
    Seule la méthode PageMethods ne fonctionne pas. Le reste du code fonctionne parfaitement.
    Il faut decorer ta methode avec l'attribut WebMethod, et il faut aussi que la methode soit declaree avec les mots clefs Public et Shared (= public et static en C#) :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <System.Web.Services.WebMethod()> _
    Public Shared Sub Test1(ByVal sender As Object, ByVal e As EventArgs) 
         Label1.Text = "eee"
    End Sub

    Avec ca, la mecanique est en place, mais ton exemple ne va pas fonctionner ! Le but des PageMethods c'est de recuperer des donnees cote client, en exposant le code behind comme un web service. Dans ton cas, tu appelles une methode qui ne retourne rien. De plus, tu auras beau changer la valeur du texte cote serveur, ca ne rafraichira pas le texte cote client. Il faudrait faire comme ceci :

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <System.Web.Services.WebMethod()> _
    Public Shared Function Test1(ByVal sender As Object, ByVal e As EventArgs) As String
         Return "eee"
    End Sub

    Code HTML : 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
    <script type="text/javascript">
            function ShowBox(){
                    if (confirm("do you want to go ahead ?") == true){
                         //do something
     
                        PageMethods.Test1(onSuccess, onFailure);
     
                        function onSuccess(result) {
                            document.getElementById("IdDuTexteboxAMettreAJour").value = result;
                        }
     
                        function onFailure(result) { alert("failed"); }                                     
     
                    }
                    else{
                        return false;
                    }
            }
     
        </script>
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2016
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Merci pour ces explications très claires. Maintenant je comprends le fonctionnement de PageMethods. Mais ce n'est pas ce que je veux. Je reviens à mon premier message.
    ShowBox récupère la réponse côté client. Et en fonction de cette information (si oui) je dois pouvoir exécuter une procédure code vb. net, en particulier Test1(je ne récupère rien côté client)
    En lisant différentes explications sur certains forums je me suis trompé sur le rôle de la PageMethods.
    Encore une fois Grand Merci.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2016
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Que je suis con!
    Le 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 type="text/javascript">
            function ShowBox(){
                    if (confirm("do you want to go ahead ?") == true){
                         //do something
                         //window.location.href = "Contact.aspx";
                         return true;
                    }
                    else{
                        return false;
                    }
     
            }
     
        </script>
    Code aspx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                <asp:Button ID="Button3" OnClick="Test1" runat="server" OnClientClick="return ShowBox()"  Text="Test JS" />
    Impeccable!

Discussions similaires

  1. [AppleScript] Appel d'une routine avec El Capitan
    Par jefmonde dans le forum AppleScript
    Réponses: 2
    Dernier message: 19/12/2015, 03h59
  2. Réponses: 4
    Dernier message: 08/01/2008, 23h46
  3. Réponses: 0
    Dernier message: 27/08/2007, 16h32
  4. [VB.NET] Connection à une base vb.net avec interogation
    Par lou87 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 27/02/2006, 16h56
  5. Appel d'une routine via IRQ_9
    Par mickael777 dans le forum C
    Réponses: 15
    Dernier message: 10/01/2005, 10h08

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