Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur Buttonclick avec code C#

    9 décembre 2021 à 15:06:19

    Bonjour à tous,

    J'ai un site web avec une zone de texte servant à entrer un identifiant ainsi qu'un bouton qui, avec un code C#, va copier le contenu de ma zone de texte.

    Cependant, quand je clique sur mon bouton, j'obtiens l'erreur suivante :

     Uncaught ReferenceError: Test_connection is not defined at HTMLButtonElement.onclick

    Voici mon code :

    <div id="buttonsWrapper">
        <div id="form">
            <h2>Se Connecter </h2>
    
            
            <input required id = "my_pseudo" v-model="pseudo" placeholder="Entrer votre pseudo">
            <input required type="password" v-model="password" placeholder="Entrer votre mot de passe">
            <Label id="label" runat="server" Text="text to be copied"></Label>
            <Button id="Button1" runat="server" OnClick="Test_connection">Connexion</Button>
    
    
        </div>
    
        
       
    
       
    </div>
    <script language="C#" runat="server">
    
                                private void Test_connection(object sender, EventArgs e)
            {
                Clipboard.SetText(my_pseudo.Text); //set text to clipBoard
            }
    
           
    
                       
    </script>

    Avez vous une idée afin de résoudre ce problème ? 
    Merci.

    -
    Edité par Rom1_Ln 9 décembre 2021 à 15:17:25

    • Partager sur Facebook
    • Partager sur Twitter
      10 décembre 2021 à 8:30:53

      Salut,

      Essaye de remplacer ton Button par un asp:Button.

      L'erreur que tu as ici est une erreur javascript, car il essaye d'exécuter ton code coté client (JS) et non coté serveur (C#).

      • Partager sur Facebook
      • Partager sur Twitter
      Fatalement vôtre
        10 décembre 2021 à 15:08:20

        Bonjour,

        Merci de ta réponse.

        J'avais déjà essayé en mettant asp:Button mais j'ai la même erreur. J'ai également essayé avec LinkButton mais sa ne change rien.

        Vous avez une autre idée ?

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
          13 décembre 2021 à 11:47:25

          Re, 

          Egalement, lorsque je met mon curseur sur le private de ma fonction, je vois l'erreur "TS1128: (JS) declaration or statement expected."

          C'est bizarre que sa me mette une erreur JS puisque je travaille en C#. Pourtant, j'ai bien mis mon script en C#.

          J'ai aussi des erreurs "TS1005: (JS) ';' expected sur mes variables ( sender, e  ou d'autres var qd je change unpeu mon code)

          Vous pensez que le problème vient de là ?

          Merci.

          -
          Edité par Rom1_Ln 13 décembre 2021 à 14:12:29

          • Partager sur Facebook
          • Partager sur Twitter
            17 décembre 2021 à 10:04:37

            Re, vous avez une petite idée là dessus ?

            Merci et bonne journée.

            • Partager sur Facebook
            • Partager sur Twitter
              20 décembre 2021 à 8:06:31

              Salut,

              Tu as beau être en ASP, ça se base sur de l'HTML, et en HTML, si tu crée un Button, alors la fonction OnClick est en JS.

              Tu dois mettre asp:Button si tu veux pouvoir appeler une fonction en C#.

              Tu dis que tu l'as deja fait, mais est-ce que tu as exactement la même erreur dans ce cas?

              • Partager sur Facebook
              • Partager sur Twitter
              Fatalement vôtre
                20 décembre 2021 à 10:33:21

                Bonjour,

                Oui, c'est pour ça que je ne comprends pas.

                Voici les erreurs que j'ai, même en mettant asp:Button.

                TS1128 sur le private et TS1005 sur les autres variables. J'ai la même chose en enlevant les asp:.

                <div id="buttonsWrapper">
                    <div id="form">
                        <h2>Se Connecter </h2>
                
                
                        <input required id="my_pseudo" v-model="pseudo" placeholder="Entrer votre pseudo">
                        <input required id = "my_password" my_password" type="password" v-model="password" placeholder="Entrer votre mot de passe">
                
                        <asp:Button id="Button1" runat="server" OnClick="Test_connection">Connexion</asp:Button>
                        <asp:Label id="MessageBox" runat="server"></asp:Label>
                
                    </div>
                
                            
                   <br/><br/>
                
                    <a id="btnEmbedReport" href="~/Home/EmbedReport">Embed Report</a>
                    <br/>
                
                 
                </div>
                
                <script language="C#" runat="server">
                
                
                    private void Test_connection(Object sender, EventArgs e)
                    {
                
                
                        SqlConnection con = new SqlConnection("Data Source=LucyInterpretedProduction;Initial Catalog=BDD;User ID=test_id;Password=test_password");
                        string query = " SELECT count(login) FROM Business__My_Patient_Procedure_List WHERE login= ' " + my_pseudo.Text + "' AND motdepasse= '" + my_password.Text + "'";
                        SqlCommand comm = new SqlCommand(query, connection);
                
                        connection.Open();
                        int result = (int)comm.ExecuteScalar();
                        if (result = 0) {
                            MessageBox.Show("Password or login incorrect");
                        }
                        else {
                
                        }
                        con.Close();
                
                
                    };
                
                
                </script>



                Merci

                -
                Edité par Rom1_Ln 20 décembre 2021 à 10:58:03

                • Partager sur Facebook
                • Partager sur Twitter
                  20 décembre 2021 à 13:49:31

                  Salut,

                  Bon, j'ai pris la peine de faire un projet pour tester ton code..

                  Et y'a beaucoup, beaucoup de chose qui ne vont pas...

                  Voici le même code mais "corrigé", je te laisse le regarder et le comparer au tien pour comprendre (sinon ça n'a aucun intêret) ce qui n'allait pas:

                  <%@ Import Namespace="System.Data.SqlClient" %>
                  
                  <div id="buttonsWrapper">
                      <div id="form">
                          <h2>Se Connecter </h2>
                  
                          <form runat="server">
                              <asp:TextBox required runat="server" id="my_pseudo" v-model="pseudo" placeholder="Entrer votre pseudo" />
                              <asp:TextBox required runat="server" id="my_password" type="password" v-model="password" placeholder="Entrer votre mot de passe" />
                  
                              <asp:Button runat="server" OnClick="Test_connection" Text="Connexion" />
                          </form>
                          <asp:Label id="MessageBox" runat="server" />
                  
                      </div>
                  
                  
                      <br />
                      <br />
                  
                      <a id="btnEmbedReport" href="~/Home/EmbedReport">Embed Report</a>
                      <br />
                  
                  
                  </div>
                  
                  <script language="C#" runat="server">
                      
                      void Test_connection(Object sender, EventArgs e)
                      {
                          SqlConnection con = new SqlConnection("Data Source=LucyInterpretedProduction;Initial Catalog=BDD;User ID=test_id;Password=test_password");
                          string query = " SELECT count(login) FROM Business__My_Patient_Procedure_List WHERE login= ' " + my_pseudo.Text + "' AND motdepasse= '" + my_password.Text + "'";
                          SqlCommand comm = new SqlCommand(query, con);
                   
                          con.Open();
                          int result = (int)comm.ExecuteScalar();
                          if (result == 0) {
                              MessageBox.Text = "Password or login incorrect";
                          }
                          con.Close();
                      }
                  
                   
                  </script>
                  

                  N'hésite pas si tu as des questions.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Fatalement vôtre
                    20 décembre 2021 à 15:08:41

                    Salut, 

                    Merci pour ta réponse.

                    J'ai utilisé ton code corrigé mais, quand je le lance, les TextBox ne s'affichent pas.

                    Je ne sais pas si c'est lié à ça, mais j'utilise des vues. (c'est pour ça que je n'avais pas le head et le body dans ce code). est-ce que ça peut être la cause du prob ?

                    Merci.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 janvier 2022 à 9:31:34

                      Up. 

                      Vous avez une idée sur ce problème ?

                      Merci

                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 janvier 2022 à 10:34:43

                        C'est quoi le nom du fichier avec le code ?

                        C'est pas un .ts par hazard ?

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                          3 janvier 2022 à 11:11:25

                          Salut.

                          Le fichier dans lequel j'ai mon code est le même que celui que j'utilise pour le html, in s'appelle Index.cshtml

                          Pour le code, j'utilise une balise <script>

                          Mon code est censé être en TS ou sa passe en C# ?

                          Merci

                          • Partager sur Facebook
                          • Partager sur Twitter
                            3 janvier 2022 à 12:07:21

                            Comme les messages d'erreurs sont "tagué" TS (pour TypeScript), j'ai l'impression qu'Intellisense considère que ces parties du code doivent être du TypeScript et non du C#.

                            C'est à l'exécution (coté serveur ? coté navigateur ?) ou à l'édition que vous obtenez les messages liés "TS" ?

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                              3 janvier 2022 à 13:43:42

                              Salut et merci de ta réponse

                              Enfait c'est plutôt des avertissements que j'ai.

                              C'est quand je passe mon curseur sur mes variables que s'affiche le message "TS1005: (JS) ',' expected".

                              Donc puisque c'est juste un avertissement et non une erreur, je peux lancer mon code.

                              Mais quand je lance mon programme et que j'appuie sur mon bouton qui est relié au code, j'obtiens un message d'erreur qui me dit que ma fonction n'est pas définie.

                              Donc jsp si les avertissements et cette erreur sont liés ou si c'est indépendant.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 janvier 2022 à 17:49:10

                                Vous devriez d'abord vérifier les tenants et aboutissants des "warnings" (avertissements).

                                Donnez-nous les messages d'avertissement complets (nom de fichier compris), SVP.

                                -
                                Edité par bacelar 3 janvier 2022 à 17:58:20

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                  4 janvier 2022 à 10:08:27

                                  Bonjour, voici mes messages d'avertissements.
                                  Les deux premiers sont sur les variables en paramètres "sender" et "e". Les autres sont sur les différentes variables de ma fonction.
                                  Code         Description             Projet          Fichier             Ligne           État de la suppression
                                  TS1005     (JS) ',' expected.     monprojet   Index.cshtml     38                  Actif
                                  TS1005     (JS) ',' expected.     monprojet   Index.cshtml     38                  Actif
                                  TS1005     (JS) ';' expected.     monprojet   Index.cshtml     40                  Actif
                                  TS1005     (JS) ';' expected.     monprojet   Index.cshtml     41                  Actif
                                  TS1005     (JS) ';' expected.     monprojet   Index.cshtml     42                  Actif
                                  TS1005     (JS) ';' expected.     monprojet   Index.cshtml     45                  Actif
                                  TS1005     (JS) ';' expected.     monprojet   Index.cshtml     45                  Actif
                                  Merci.

                                  -
                                  Edité par Rom1_Ln 4 janvier 2022 à 10:10:18

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    4 janvier 2022 à 10:20:45

                                    Le code source de la page, SVP ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                      4 janvier 2022 à 10:27:21

                                      @model Lucy_Web.Models.IndexConfig
                                      @{
                                          ViewBag.Title = "Index";
                                          Layout = "~/Views/Shared/_Layout.cshtml";
                                      }
                                      <div id="buttonsWrapper">
                                          <div id="form">
                                              <h2>Se Connecter </h2>
                                              <form runat="server">
                                                  <asp:TextBox required runat="server" id="my_pseudo" v-model="pseudo" placeholder="Entrer votre pseudo" />
                                                  <asp:TextBox required runat="server" id="my_password" type="password" v-model="password" placeholder="Entrer votre mot de passe" />
                                                  <asp:Button runat="server" OnClick="Test_connection" Text="Connexion">Connexion</asp:Button>
                                              </form>
                                              <asp:Label id="MessageBox" runat="server" />
                                          </div>
                                          <br />
                                          <br />
                                          <a id="btnEmbedReport" href="~/Home/EmbedReport">Embed Report</a>
                                          <br />
                                      </div>
                                      <script language="C#" runat="server">
                                      // Le code qui a les avertissements
                                      void Test_connection(Object sender, EventArgs e)
                                          {
                                              SqlConnection con = new SqlConnection("Data Source=LucyInterpretedProduction;Initial Catalog=BDD;User ID=test_id;Password=test_password");
                                              string query = " SELECT count(login) FROM Business__My_Patient_Procedure_List WHERE login= ' " + my_pseudo.Text + "' AND motdepasse= '" + my_password.Text + "'";
                                              SqlCommand comm = new SqlCommand(query, con);
                                      
                                              con.Open();
                                              int result = (int)comm.ExecuteScalar();
                                              if (result == 0) {
                                                  MessageBox.Text = "Password or login incorrect";
                                              }
                                              con.Close();
                                          }
                                      </script>   
                                      Voilà.

                                      -
                                      Edité par Rom1_Ln 4 janvier 2022 à 10:28:38

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        4 janvier 2022 à 13:08:24

                                        Les warning semblent être une limitation du compilateur TypeScript :

                                        https://github.com/microsoft/TypeScript/issues/42391

                                        Pourquoi passer par un balisage "<script language="C#" runat="server">" et pas juste "@fonctions" ?

                                        https://docs.microsoft.com/fr-fr/aspnet/core/mvc/views/razor?view=aspnetcore-6.0

                                        (Désolé, je n'ai jamais utilisé le moteur Razor.)

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                          4 janvier 2022 à 16:28:59

                                          Salut et merci de ta réponse.

                                          Pour les warning, j'avais déjà regardé le lien que tu m'as envoyé mais il ne m'avais pas vraiment aidé. Je n'ai pas compris en quoi mettre des parenthèses autour pouvait résoudre le problème. 

                                          Mais je me demande, puisque ce sont uniquement des warnings, si on peux les laisser ou si on doit les résoudre pour faire fonctionner le code.

                                          Pour le balisage, je ne suis pas très habitué avec @functions.

                                          J'ai l'impression qu'on ne peux pas mettre runat="server" si on utilise @functions et je ne sais pas si sa peux fonctionner sans.

                                          Egalement, en mettant @pseudos, ma fonction ne reconnait plus "my_pseudo" et "my_password" et SqlConnection ne fonctionne plus.

                                          Donc je pense rester sur le balisage <script ...> 

                                          Je vais essayer de résoudre le prob, mais je suis pas sûr.

                                          Merci en tout cas.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            4 janvier 2022 à 19:03:27

                                            Je suis loin de ma zone de confort et l'utilisation explicite de requêtes SQL en dur dans le code m'hérisse les poils (trous de sécurité, maintenabilité, modularité, etc...).

                                            Alors en demandant à Google "Razor Entity Framework Tutorial" ; ça donne ça :

                                            https://docs.microsoft.com/fr-fr/aspnet/core/data/ef-rp/intro?view=aspnetcore-6.0&tabs=visual-studio

                                            Ca devrait donner un résultat un peu moins "bricolé".

                                            >Donc je pense rester sur le balisage <script ...>

                                            Vous êtes sûr que cette manière de faire est compatible avec le moteur Razor ?

                                            >Je n'ai pas compris en quoi mettre des parenthèses autour pouvait résoudre le problème.

                                            C'est un hack pour contourner une limitation du compilateur TypeScript.

                                            >puisque ce sont uniquement des warnings, si on peux les laisser ou si on doit les résoudre

                                            C'est des indices potentiels pour expliquer d'éventuel dysfonctionnement => il faudrait donc analyser le warning dès qu'il apparaît et ne le laisser de côté que si l'on n'est sûr que c'est un faux "positif" et alors configurer le projet pour qu'il n'apparaisse plus.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

                                            Erreur Buttonclick avec code C#

                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                            • Editeur
                                            • Markdown