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 :

Cycle de vie d'une page ASP


Sujet :

ASP.NET

  1. #1
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut Cycle de vie d'une page ASP
    Bonjour,

    Je me suis mis à l'ASP.NET il y a quelques jours et j'ai eu l'occasion de voir que le cycle de vie d'une page n'est pas vraiment intuitif.

    Par exemple, j'ai vu que Page_load est appelée avant les evenements sur les controles. Dans pas mal de sites, on voit pourtant qu'en fonction de certains controles, on en charge d'autres dinamiquement. Par exemple, on aura un combo avec une marque et un autre avec la liste des produits correspondant à la marque. Le 2e a donc besoin du premier pour s'initialiser...
    Bien sur, on pourrait imaginer utiliser le postBack pour ne pas charger les controles dans le page_load mais dans ce cas, il faudrait s'assurer qu'ils sont toujours chargés (meme quand on clic sur un bouton qui n'a rien à voir).

    Ma question est donc : Dans l'idéal, à quel moment du cycle d'une page faut il :
    - ajouter les controles
    - Remplir les controles depuis une BDD

    Merci

  2. #2
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Moi je pense que si tu veux ajouter des contrôles dynamiquement pendant un PostBack, le mieux sera de le faire dans l’événement PreInit de la page, car l’événement qui suit (i.eInit) se déclenche tout juste après que toutes les contrôles ont été crée.

    La mise en place d'une connection vers une base de données, la remontée des données dans une contrôle, tu peux les mettre dans l’événement Load de la page ou dans l'evenement qui a été l'origine du PostBack .

  3. #3
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Oui, j'avais mis la creation des controles dans l'evenement load. Mais ce qui m'etonne, c'est que quand je clic sur un bouton, je recois d'abord l'evenement page_load puis seulement l'evenement clic.

    Ca veut dire que si je veux charger un combo par rapport à la valeur d'un autre (ce qui se voit beaucoup, par exemple sur les sites commerciaux ou on choisi une marque puis un modele), je ne peux pas le faire dans le page_load puisque l'evenement clic n'est pas encore recu.

    Ca me parait etrange comme comportement... Mais j'imagine que le cycle de vie est pas trop mal fait et que c'est plutot moi qui ne fait pas ce qu'il faut au bon moment.

  4. #4
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Mais ce qui m'etonne, c'est que quand je clic sur un bouton, je recois d'abord l'evenement page_load puis seulement l'evenement clic.
    C'est vrai. car pendant l’événement Load de la page, les propriétés des contrôles sont chargés, avec leurs ViewState. A ce stade, tous les contrôles contiennent des données.
    Une fois les données prêtes, on peut maintenant les manipulées, et normalement le traitement se fait dans le gestionnaire d'evt qui a causé le PostBack.
    Dans ton cas, si j'ai bien compris le problème, tu dois récupèrer la valeur sélectionnée du combo dans le gestionnaire d’événement du contrôle qui a causé le PostBack. Tu remonte les données correspondant a la valeur sélectionnée, tu crée le nouveau Combo, le binder, et ensuite le mettre dans la collection Controls du formulaire.

    a+

  5. #5
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Citation Envoyé par Ramajb Voir le message
    Tu remonte les données correspondant a la valeur sélectionnée, tu crée le nouveau Combo, le binder, et ensuite le mettre dans la collection Controls du formulaire.
    Oui, c'est bien ce que je fais. Mais du coup, j'ajoute des composants dans l'evenement clic. Il n'y a pas de contre indications ?

  6. #6
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Je ne pense pas car tu peux jusqu’à l'evt Pre-Render ajouter ou modifier des contrôles sur la page. Juste après cet evt que tous les contrôles seront mappés en tag HTML.

    En espérant t'avoir aidé.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/03/2010, 14h48
  2. Cycle de vie d'une page ASP corrompu
    Par gabdeschenes dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/06/2009, 18h52
  3. Cycle de vie d'une page asp.net
    Par lazins dans le forum ASP.NET
    Réponses: 12
    Dernier message: 03/11/2008, 17h50
  4. url d'une page asp ou upload avec get
    Par taupin dans le forum ASP
    Réponses: 18
    Dernier message: 22/08/2003, 14h25
  5. |VB6] [Réseau] Lancer une page ASP
    Par Delphi-ne dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 18/10/2002, 16h10

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