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 :

Validation et DropDownList


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut Validation et DropDownList
    Bonjour tout le monde,

    J'ai un petit souci de DropDownList que je n'arrive pas à résoudre... je m'explique :

    J'ai créé un contrôle utilisateur pour mon site internet, chargé de créer un nouveau compte client dans ma base de données. Dans ce contrôle utilisateur, il y a, notamment, un DropDownList et un bouton valider. Le dropDownList se charge d'après les données de ma base de données dans la méthode Load de mon controle.

    Problème classique déjà évoqué pas mal de fois : lors de la validation, l'élément sélectionné de ma DropDownList a changé : c'est le premier élément de cette liste qui s'est resélectionné.

    Je crois deviner le problème : cela viendrait du fait que ma méthode Load est rappelée lors de la validation, donc le controle recharge les données, et forcément sélectionne ensuite par défaut le premier élément.

    SI j'entoure mon code de if(!IsPostBack){}, le problème est que mon DropDownList va se remplir la première fois, puis une fois le bouton valider appuyé, il n'y aura plus aucune donnée.

    La question est donc de savoir où placer le code de chargement des données afin que ma sélection soit conservée après validation ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    attention à l'ordre des événements
    Dans le cycle de vie de la page asp.net, notamment après un postback, tu as dans l'ordre : OnInit, LoadViewState, LoadPostData et OnLoad.

    Conclusion, si tu initialises la datasource dans le OnLoad tu vas perdre la valeur du postback. Et dans ton cas, tu vas perdre la valeur selectionnée de la dropdownlist.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    conclusion, un petit déplacement de ma méthode de remplissage du DDL dans "Page_Init" à la place de "Page_Load" et tout est rentré dans l'ordre !

    super, cool, merci !

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    si tu veux comprendre le cycle de vie d'une page asp.net, n'hésite pas à consulter ce tutoriel http://nico-pyright.developpez.com/t...prendreaspnet/

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    article très très bien fait !

    Merci !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/03/2010, 16h28
  2. Réponses: 3
    Dernier message: 09/01/2010, 11h55
  3. Validation d'une dropdownList
    Par PatStan17 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 29/12/2008, 16h35
  4. [C#] Dropdownlist avec bouton valider
    Par serge benhamou dans le forum ASP.NET
    Réponses: 3
    Dernier message: 28/10/2005, 10h42

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