Bonjour,
Voila mon objet possède une variable de type String et un selectListItem composé des différents rôles possible.
J'aimerai afficher le pseudo de chaque personne ainsi que le selectListItem dans un dropdownlistbox...
J'ai beau essayer dans tous les sens mais je n'y arrive pas :/.
Voici ma class Modele Utilisateur:
Quand la personne se connecte sur la page je vais recuperer dans la base de donnée les pseudo et roles, je mets ensuite les rôles dans une liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; using System.Web.Mvc; namespace ASP.Models.Utilisateur { public class Utilisateur { [Required(ErrorMessage = "Le pseudo est obligatoire")] [Display(Name = "Pseudo")] public String Pseudo { get; set; } [Display(Name = "Roles")] public IList<SelectListItem> roles = new List<SelectListItem>(); public IList<SelectListItem> Roles { get { return roles; } set { roles = value; } } } }
Voici le controleur:
Et voici ma vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public ActionResult Modifier() { Connection connection = new Connection(); connection.creationConnexion(); DbDataReader reader = connection.getBDAllPseudoRole(); List<Utilisateur> utilisateurs=new List<Utilisateur>(); Utilisateur utilisateur = null; ; if (reader.HasRows)//enregistrement existant { while (reader.Read()) { //Recuperer si une personne existe déjà ou pas dans la liste Boolean flag = false; foreach (Utilisateur utilisateurTemp in utilisateurs) { if (utilisateurTemp.Pseudo.Equals(Convert.ToString(reader[0]))) { utilisateur = utilisateurTemp; flag = true; } } if(flag==false) utilisateur = new Utilisateur(); if (reader.GetValue(1) == DBNull.Value)//si la colonne 1 vaut null; cad la colonne des rôles { utilisateur.Pseudo = Convert.ToString(reader[0]); } else { utilisateur.Pseudo = Convert.ToString(reader[0]); SelectListItem item = new SelectListItem(); item.Text = Convert.ToString(reader[1]); item.Value = Convert.ToString(reader[1]); utilisateur.Roles.Add(item); } utilisateurs.Add(utilisateur); } } return View(utilisateurs); }
J'ai une sale erreur au niveau du dropdownList et je ne trouve pas de solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 @model ASP.Models.Utilisateur.Utilisateur @{ ViewBag.Title = "Modifier"; } <h2>Modifier</h2> @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>Utilisateur</legend> <div class="editor-label"> @Html.LabelFor(utilisateur => utilisateur.Pseudo) </div> <div class="editor-field"> @Html.EditorFor(utilisateur => utilisateur.Pseudo) @Html.ValidationMessageFor(utilisateur => utilisateur.Pseudo) </div> <div class="editor-label"> @Html.DropDownList("roles", utilisateur => utilisateur.Roles) </div> <input type="submit" value="Connexion"/> </fieldset> }.
Merci d'avance pour votre aide
Cordialement,
Zoners
Partager