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#]Comment détecter les appuis sur bouton avant le page_Load() ?


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut [C#]Comment détecter les appuis sur bouton avant le page_Load() ?
    Bonjour, j'aimerais pouvoir savoir qu'un appui sur un bouton a été effectué et est la cause du postback.

    En effet, pour le moment, j'ai le schéma
    - page_load en entier
    - action bouton
    - page_load en entier

    et j'aimerais avoir
    - page_load minimale, car elle sera relancée
    - action bouton
    - page_load en entier

    Merci

  2. #2
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Il te suffit d'utiliser la propriété isPostBack dans ton page_load.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (Page.isPostBack)
    {
         // Ici tu met le page load lorsque la page est un retour de postback
         // Dans ton cas précis, ce que tu veux afficher après le bouton
    }
    else
    {
         // Ton page_load "minimal" comme tu dis.
    }

    Voilà, je sais pas si cela répond à ta demande ...

  3. #3
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    En fait, non .
    Ce qu'il me faut, c'est savoir qu'elle est la cause du post back.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Tu ne peux pas le savoir sans mettre les mains dans le fonctionnement interne d'asp.net (aller lire dans ses champs cachés, comparer des identifiants de contrôles coté client etc...) , ce qui est à la fois moche et sans garantie de fonctionner encore sur la prochaine version d'asp.net.

    Cela dit tu cherches à faire quoi , pourquoi as tu besoin de savoir quel controle a effectué le postback ? Le fonctionnement d'une page asp.net est assez bien fait pour n'avoir pas généralement à essayer de le contourner.

  5. #5
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    En fait, j'ai des boutons dont le but est de changer de mode.
    et en fonction de ce mode, page_load effectue des actions différentes.

    Donc le problème est :
    mode = m
    clique boutton (mode +1)
    page load : mode = m (au lieu de mode = m+1)
    action bouton: mode = m+1

    Bien sur, les m et m+1, c'est pour faire simple.

  6. #6
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    De toute façon, regarde les propriété de l'objet Sender, en général on arrive à trouver ce que l'on veut via cet objet.

    Enfin pour ma part ...

    Sinon, tu as une autre manière, tu créé une variable de session dans laquelle tu sotcke l'id du controle qui à été appeller, comme ça tu peux savoir quel objet à été actionner, meme après un postback

  7. #7
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    Sinon, tu as une autre manière, tu créé une variable de session dans laquelle tu sotcke l'id du controle qui à été appeller, comme ça tu peux savoir quel objet à été actionner, meme après un postback
    Ben non, justemement :
    l'ajout de l'ID dans la session se fera lors de l'action du boutton, et donc après le page_load() ... voilà le pb.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Je ne vois pas bien le probleme, ou plutot tout depend de ce que tu appelles des modes. Mais en gros dans le page_load tu te mets dans le mode du coup d'avant en fonction d'une variable de session (ou de ce que tu veux), et dans chaque event handler de tes boutons tu te positionnes dans le bon mode, et tu positionnes la variable qui indiquera à ton page_load le prochain coup quel est le nouveau mode.

  9. #9
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Hum, comment ça ?

    Moi j'ai des pages ou j'utilise le postback. Lors d'un clic sur le bouton, via l'évnèement onClick je set une variable de session, et ensuite j'utilise la fonction Init de la page pour refresh mes contrôles. Et cela marche.

    cf mon post : http://www.developpez.net/forums/sho...d.php?t=180965

    Ce que tu cherche surement c'est l'évènement Init, c'est aussi ce que je cherchais ...

    Bref, lors du click, tu peux set une variable de session, et ensuite intercepter avant le load de la page via l'evenement onClick.


    Regarde le code que j'ai poster sur mon post, je pense qu'il va t'aider

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    AiSpirit a raison, le page_load a lieu avant tout déclenchement d'évenement de controle, et l'init a lieu avant le page_load.

  11. #11
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Sphax, vu ton expertise, tu vas pouvoir me renseigner exactement !

    Le page load est effectuer après chaque appel d'une page, cependant, lors d'un evenement quelconque, je vais encore passer dans le page_load.

    Cependant le init se glisse avant cette méthode de la page, et le viewstate passe ensuite par dessus et vient ensuite le page load.

    Ma question est la suivante, dans quel ordre tout cela se passe-t-il, le page_load et le init sont'ils controlé à chaque évènements ?

  12. #12
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    bon, voici la méthode que j'ai empyé :

    page_load
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > récupère le dernier mode enregistrée
    > appel display(mode)
    la gestion des clicks
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    si le mode enregistrée est incorrect,
    >effacer le display() (un simple table.Rows.Clear())
    >mettre a jour les enregistrement
    >appel display(newMode)
    ... ça marche. et puis y aura pas trp de double génération du display, avec les tests.

    Merci pour vos aides

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    CORBASE , les évenements sont bien appelés dans cet ordre, toujours :

    Init de la page
    Load Viewstate (chargement du viewstate venant du client)
    Page_load
    Evenements des controles


    Pour plus d'infos tu peux chercher "asp.net page life cycle" ou "cycle de vie d'une page asp.net" dans google, tu as qques tutoriaux pas mal qui expliquent tout ça en détail.

  14. #14
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    OK, je te remercie

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

Discussions similaires

  1. Comment détecter l'appui sur une touche du clavier?
    Par Cygnus Saint dans le forum C++
    Réponses: 2
    Dernier message: 17/09/2009, 20h31
  2. Comment détecter l'appui sur une touche hors de l'application ?
    Par freezerhm dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/04/2008, 22h53
  3. [C#] Comment détecter l'appui sur 'Entrée' ?
    Par ArHacKnIdE dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/01/2008, 17h05
  4. [FF] Comment détecter l'appuie sur "Enter" dans un textarea ?
    Par djuju dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/03/2007, 19h45
  5. Réponses: 2
    Dernier message: 20/03/2006, 18h05

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