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 :

Comment faire appel à une même fonction dans plusieurs page web ? [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Comment faire appel à une même fonction dans plusieurs page web ?
    Bonjour à tous,

    depuis ce matin je cherche à appeler une même fonction à partir de plusieurs pages différentes ce qui me semblait être facile

    J'ai une page index.aspx et une page inscription.aspx, sur ces 2 pages j'ai une fonction "log" qui est exactement la même dans les 2 pages .aspx.cs.
    Pour simplifier j'aimerais me créer une page aspx.cs nommée "fonctions" où je peux regrouper toutes mes fonctions utilisées par plusieurs pages.

    Je n'arrive pas à créer cette page avec visual studio 2008.

    Comment puis-je faire ?

  2. #2
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    Hello,

    En créant une classe plutôt qu'un WebForm ?
    Sinon tu dois pouvoir mettre ta fonction dans Global.asax.cs en la mettant publique.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Merci pour ta rapidité !

    Ah je ne connaissais pas ce global.asax, j'essaye ça de suite merci !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Alors j'ai lu qu'avec le fichier Global il n'était pas possible de faire ce que je cherchais donc je me suis penché sur le namespace.

    Mais dans ma fonction j'utilise des session, response.redirect et les noms de mes textbox ce qui m'apporte beaucoup d'erreurs
    (exemple : Le nom 'Session' n'existe pas dans le contexte actuel)

    Pour info j'ai mis ce code dans le fichier index.aspx.cs

    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Globalization;
    using System.Text.RegularExpressions;
     
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
        }
    }
     
    namespace fonctions
    {
        static class Fonctions
        {
            static void log(object sender, ImageClickEventArgs e)
            {
                   Session["userNom"] = txtNom;
                   Response.Redirect("index.aspx");
            }
        }
    }

  5. #5
    Membre habitué Avatar de Joel Pinto Ribeiro
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 95
    Points : 145
    Points
    145
    Par défaut
    Tu peux faire une fonction generique en lui passant les variables qui sont lié à la page, en parametres.

    Concretement dans ton exemple, ne va pas directement chercher dans les controles "TxtNom" mais passe à la fonction cette valeur depuis les pages respectives.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Merci pour ton aide, j'essayerais demain.

    En tout cas je sais quoi chercher maintenant sur google, j'avais oublié le terme "générique"

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Bon ça y est j'ai réussi en utilisant une page class.cs dans App_Code.

    je créé mon nouvel objet dans la page Class1.cs:

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Globalization;
    using System.Text.RegularExpressions;
     
    public class fonctions
    {
        public static int login(string login, string pass)
        {
            string pattern = @"\w+@\w+\.\w+";
            Regex rgx = new Regex(pattern);
            try
            {
                if (rgx.IsMatch(login))
                {
                    int readerID;
                    string readerNom, readerPrenom, readerMDP;
     
                    String connecstr = ConfigurationManager.ConnectionStrings["bdd"].ConnectionString;
                    SqlConnection sqlconnec = new SqlConnection(connecstr);
     
                    string strRequete = "select userid,usernom,userprenom,usermdp FROM utilisateur where userMail = @logMail ";
                    SqlCommand sqlCommand = new SqlCommand(strRequete, sqlconnec);
     
                    sqlCommand.Parameters.Add(new SqlParameter("@logMail", SqlDbType.VarChar));
                    sqlCommand.Parameters["@logMail"].Value = login;
     
                    sqlconnec.Open();
     
                    SqlDataReader sqlReader = sqlCommand.ExecuteReader();
     
                    if (sqlReader.HasRows)
                    {
                        // Adresse Mail trouvée
                        sqlReader.Read();
                        readerID = sqlReader.GetInt32(0);
                        readerNom = sqlReader.GetString(1);
                        readerPrenom = sqlReader.GetString(2);
                        readerMDP = sqlReader.GetString(3);
     
                        sqlReader.Close();
                        sqlconnec.Close();
     
                        if (readerMDP == pass)
                        {
                            return 5;
                        }
                        else
                        {
                            return 4;
                        }
                    }
                    else
                    {
                        return 3;
                    }
                }
                else
                {
                    return 2;
                }
            }
            catch (Exception)
            {
                return 1;
            }
        }
    }
    Et dans mes pages appelantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void clictest(object sender, ImageClickEventArgs e)
        {
            switch (fonctions.login(txtIdent.Value,txtPass.Value))
            {
                case 1: errorlog.Text = "Erreur de Catch"; break;
                case 2: errorlog.Text = "Erreur RegExp"; break;
                case 3: errorlog.Text = "Mail non trouvé dans la bdd"; break;
                case 4: errorlog.Text = "Pass incorrect"; break;
                case 5: errorlog.Text = "c'est bon tu es log !"; break;
                default: errorlog.Text = "Erreur"; break;
            }
        }
    Ça marche nikel Merci beaucoup
    Je galère encore avec les static/public/protected/private mais ça va venir

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/08/2009, 13h44
  2. Réponses: 1
    Dernier message: 28/09/2008, 09h14
  3. Réponses: 7
    Dernier message: 24/09/2008, 11h18
  4. Réponses: 5
    Dernier message: 25/05/2007, 17h53
  5. Réponses: 10
    Dernier message: 08/02/2007, 13h18

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