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 :

[C#] Quel contrôle provoque le Page_Load?


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Points : 161
    Points
    161
    Par défaut [C#] Quel contrôle provoque le Page_Load?
    salut

    voilà j'ai fait une recherche mais j'ai pas trouvé de réponse à ma question.

    Comment peut-on connaitre le bouton qui a provoqué le page_Load de la page?
    Je voudrais réaliser un test sur l'identité du bouton et ainsi associer un traitement particulier dans le page_Load.

    merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    Le Page_Load est appelé à chaque ouverture de page. Un bouton en AutoPostBack à true rappelle le PageLoad.

    De plus deux cas de figure.

    dans ton page_load le test t'indique si on a rechargé la page.

  3. #3
    Membre habitué Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Points : 161
    Points
    161
    Par défaut
    je sais bien mais ce que je voudrais c'est faire un test dans le page_load pour savoir quel bouton a provoqué cet evenemt et lui associer un traitement particulier dans le page_Load

  4. #4
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Citation Envoyé par Mourad
    je sais bien mais ce que je voudrais c'est faire un test dans le page_load pour savoir quel bouton a provoqué cet evenemt et lui associer un traitement particulier dans le page_Load
    J'ai jamais eu ce cas particulier à traiter, mais il me semble que le "sender" passé à Page_Load(Object sender, EventArgs e) est le contrôle qui a provoqué le postback.

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((Button)sender).ID
    tu récupèreras l'identifiant du bouton

  6. #6
    Membre habitué Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Points : 161
    Points
    161
    Par défaut
    je ne peux pas réaliser un cast car le sender est la page elle même et non pas un bouton.
    j'ai moi aussi cru que c'était ça la solution mais le sender est toujours une page.

  7. #7
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    La solution serait alors de rappeler la page par un Response.Redirect en precisant en paramètre l'origine ou bien d'ajouter un element en session... sur le click du bouton.

  8. #8
    Membre habitué Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Points : 161
    Points
    161
    Par défaut
    ça peut faire l'affaire, mais là on contourne le problème et ça ne répond pas exactement à ma question qui était :

    peut-on connaitre dans le page_Load le bouton qui a provoqué cet appel ?

    merci
    à +

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Mourad
    ça peut faire l'affaire, mais là on contourne le problème et ça ne répond pas exactement à ma question qui était :

    peut-on connaitre dans le page_Load le bouton qui a provoqué cet appel ?
    On va se remettre 2 secondes dans le contexte des pages web et ne pas trop s'approcher de l'illusion que ça ressemble à une appli locale :

    Pour qu'une page web sache par quel bouton elle a été obtenue, il n'y a qu'un seul et unique moyen : que l'adresse obtenue en cliquant sur le bouton transmette un paramètre qui, traité dans la page correspondante, lui permettra de savoir d'où elle vient.

    Si .NET ne le fait pas automatiquement, tu dois le faire toi-même, et c'est visiblement le cas.

    On va régler aussi un coup l'histoire du paramètre sender :
    Page_Load n'est qu'une méthode bidon du designer. La vraie méthode est OnLoad, qui n'a _pas_ d'argument sender. Uniquement les arguments de l'événement. C'est valable pour tous les événements 'de base' d'ASP.NET.

    Le paramètre sender correspond à l'objet qui lance l'événement, et dans les cas des événements 'de base' lancés automatiquement, il s'agit toujours de l'instance en cours (la page ou le contrôle qui exécute l'événement). C'est le comportement normal, tu n'en tireras pas grand chose. C'est un paramètre qui sert en WinForms ou si tu appelles des événements toi-même depuis des gestionnaires 'extérieurs' qui seraient attachés à des événements de plusieurs objets, mais c'est tout.
    Dans le cas d'ASP.NET, les méthodes Page_Load et Page_Init n'ont aucun intérêt. Faire des overrides de OnLoad et OnInit a strictement le même effet, avec un paramètre (inutile) en moins (mais l'appel à base.OnLoad / base.OnInit en plus).


    Moralité : fais ça à la main, c'est pas bien méchant :)

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    je suis d'accord.

    Ajoute des évènements à tes contrôles et gèrent les dans ton code-behind, c'est le moyen que j'utilise.

  11. #11
    Membre habitué Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Points : 161
    Points
    161
    Par défaut
    je suis d'accord moi aussi

    merci pour les infos
    à+

  12. #12
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Résolu?

    Merci de cliquer sur le bouton tout en bas à gauche

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/09/2010, 00h33
  2. Quels troubles de vue peut provoquer un site web?
    Par MainMa dans le forum Webdesign & Ergonomie
    Réponses: 10
    Dernier message: 08/08/2010, 00h17
  3. Page load Et quel control a provoqué le postback
    Par topolino dans le forum ASP.NET
    Réponses: 2
    Dernier message: 19/02/2010, 09h40
  4. Réponses: 11
    Dernier message: 25/09/2007, 10h36
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

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