Home > MVC

Comment créer un DropDownList depuis le Controller (ASP.NET MVC 2.0)

23. June 2010 by Nicolas.DENIS
23 mars

Comment créer un DropDownList depuis le Controller ASP.NET MVC 2.0

Bonjour nous allons voir comment Binder simplement un DDL depuis le Controller avec toutes ces propriétés.

Petite histoire pour la compréhension de l’exemple je dispose d’élèves ayant des préférences sur des technologies.

Par exemple, je suis assez bon en ASP.NET alors que Jeremy a un niveau moyen et que Chrystelle est très forte en Finance.

En voici la modélisation.

image 

Je suis donc en ASP.NET MVC 2.0 sous Visual Studio 2010. Je souhaite faire un CRUD (Create, Read, Update, Delete) pour l’inscription, le listing, l’édition et la suppression d’une compétence.

Je vous passe les bases de la création d’un controller MVC et des vues correspondantes.

En réalisant ma vue édition d’une compétence, j’aimerai avoir le choix dans une liste déroulante de ma compétence (liste des niveaux de compétences dans une table distincte).

Je vais donc à la méthode Edit de mon controller

image

Je n’oublie pas d’instancier mes entités de mon modèle au début de mon Controller pour réaliser mes requêtes LinQ.

PGANET.Models.DBSchemeV51Entites1 _entities = new DBSchemeV51Entites1();

tout d’abord, je récupère ma valeur de la compétence que je souhaite modifier dans la méthode Edit (int LearnID).

image

Je récupère l’entité Compétence [Learn] correspondante à la compétence que je vais modifier via la requête LinQ que je stocke pour m’en servir plus tard.

image

J’instancie une Liste de SelectItem.

image

Je charge l’ensemble des valeurs pour les différents niveaux de compétences [NamingLearn] (niveau “avancé”, niveau “moyen”, niveau “faible”, …).

Je vais donc mettre dans la liste déroulante, cet ensemble de niveau de compétences [NamingLearn] cependant comme nous sommes dans l’édition d’une compétence, une valeur d’un niveau de compétence a déjà été renseigné. Il est donc logique de sélectionner cette valeur par défaut dans la liste déroulante.

image

Donc, pour chaque élément dans la table niveau de compétence, je l’ajoute à la liste. Si dans la compétence que je suis en train d’éditer, la valeur Prefer(int) dans la table Learn est égale à la valeur de l’élément en cours d’ajout, je passe la propriété, de l’item de ma liste, Selected à true.

image

Je déclare mon dictionnaire de données “Prefer”, vous remarquerez qu’il s’agit du même nom de la propriété “Prefer” dans la table Learn.

En fait, nous allons comprendre pourquoi par la suite. Et je retourne à ma vue en passant la valeur de la compétence à modifier.

image

J’ajoute ma vue fortement typé sur mon entité Learn de mon modèle de données.

image

Nous obtenons la vue suivante.

image

Je voulais donc une liste déroulante à la valeur “Prefer”:

image

Je change donc mon helper Html TextBox en DropDownList

image

Je garde le string name “Prefer” pour que l’update de la valeur “Prefer” de mon entité compétence(Learn) à modifier soit modifiée.

Aussi il permet d’appeler le dictionnaire de données que nous avons créé dans le controller.

Vérifions tout ça.

Je choisis un étudiant afin de lister ces compétences:

image

Je choisis d’éditer ma compétence HTML XTHML où je suis devenu un maitre, je clique sur Edit, pour passer la compétence de “Faible” “à Avancé”.

image

Youhou j’ai ma DDL avec les valeurs de ma table NamingLearn.

Je sauvegarde en cliquant sur “Save” après avoir sélectionné Avancé.

image

L’update a bien été réalisé.

A bientôt, Nicolas DENIS.

MVC , , , ,

Comments

6/23/2010 12:36:18 PM #
Pingback from topsy.com

Twitter Trackbacks for
        
        Labo Dotnet | Comment créer un DropDownList depuis le Controller (ASP.NET MVC 2.0)
        [labo-dotnet.com]
        on Topsy.com

Add comment




  Country flag

biuquote
  • Comment
  • Preview
Loading

captcha

*