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 MVC Discussion :

DropDownListFor validation dans une boucle


Sujet :

ASP.NET MVC

  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut DropDownListFor validation dans une boucle
    Bonjour,

    Sur ma page d'édition, j'affiche plusieurs (nombre variable) listes déroulantes. Après quelques galères j'ai enfin réussi à afficher toutes mes listes déroulantes avec les bonnes options sélectionnés par défaut.
    en gros j'ai une boucle avec mon DropDownListFor helper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i = 0; i < elements.Count(); i++)
    {
        @Html.DropDownListFor(x => x.SelectedIds[i], new SelectList(elements, "Id", "Name"), "")
    }
    (Ce code ne fonctionne pas pour afficher l'option par défaut, cette partie est géré en jQuery car j'ai une arborescence à gérer...)

    Il ne me manque plus qu'une chose : la validation. Ces listes déroulantes doivent obligatoirement avoir une valeur sélectionnée, sinon message d'erreur qui s'affiche.
    J'ai bien essayé dans mon model avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Required(ErrorMessage = "The element is required.")]
    public List<int?> SelectedIds { get; set; }
    Mais bien sûr ça ne fonctionne pas, je m'y attendais... Du coup je ne sais pas comment gérer cette partie, à part tout faire à la mano en jQuery mais ça risque d'être un peu fastidieux et j'ai un peu la flemme . De plus s'il existe une solution "standard"/out of the box en ASP.NET MVC, je veux bien la connaître.
    Auriez-vous une solution à me proposer ?

    Merci par avance.

  2. #2
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    bonjour,
    pour les listes, dans mon model, j'ai 2 propriétés, une pour la valeur, une pour la liste. Je mets l'attribut "required" sur la propriété de la valeur, pas sur la liste.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bonjour dkmix,

    Merci de ta réponse.
    J'ai dû mal m'exprimer. Je suis d'accord avec toi sur le fonctionnement. Pour une liste effectivement tu as propriété qui permet de garder l'identifiant de l'élément sélectionné (en générale un int? ou un string) et c'est sur celui-ci que tu ajoutes l'attribut [Required], dans le cas où tu dois gérer qu'une seule dropdownlist.
    Dans le cas où tu dois gérer plusieurs dropdownlist dont le nombre de dropdownlist peut varier, comment le gères-tu ?
    C'est pourquoi je suis parti sur une liste pour mes éléments sélectionnés. Au lieu d'avoir qu'une propriété int? avec l'élément sélectionné, dans mon cas, j'ai une list de int? de tous mes éléments sélectionnés pour toutes mes dropdownlist.

    Voici mon problème, j'espère que c'est plus clair.

  4. #4
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    je n'avais pas bien lu
    le cas est intéressant, il y a peut-être quelque chose à faire avec des vues partielles pour chaque liste et une validation distante

  5. #5
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bonjour dkmix,

    Merci de ta réponse.
    Je n'ai pas bien saisi l'utilité de la validation distante pour mon cas. Aurais-tu une explication un peu précise ?

    En tout cas pour le moment j'ai implémenté une solution custom côté serveur avec le ModelState.AddModelError et ModelState.IsValid, ça fonctionne mais requiert un aller/retour serveur : dommage.

Discussions similaires

  1. [XL-MAC 2011] Liste de validation avec paramètres dans une boucle de test
    Par cordy style dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/11/2014, 19h49
  2. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19
  3. swf dans une boucle asp
    Par Chucky69 dans le forum Flash
    Réponses: 11
    Dernier message: 10/02/2004, 17h07
  4. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 14h37
  5. Pause dans une boucle
    Par HT dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2003, 08h52

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