bonjour,
puis-je savoir comment je peux alimenter une "html.dropdownlist" ,
j'ai deja une table qui contient la liste des elements,
je voudrais connaitre l'action a mettre en place pour ça
merci
Version imprimable
bonjour,
puis-je savoir comment je peux alimenter une "html.dropdownlist" ,
j'ai deja une table qui contient la liste des elements,
je voudrais connaitre l'action a mettre en place pour ça
merci
essaye ca
Public Combo As New List(Of SelectListItem)()
au niveau de l'action
Citation:
For Each item As Pays In PaysDB.GetList
Combo.Add(New SelectListItem() With {.Text = item.Nom, .Value = item.Code})
Next
ViewData("Pays") = Combo
coté View :
Citation:
<td><%= Html.DropDownList("Pays")%></td>
en c# ???
Salut,
Le plus simple:
dans ton viewmodel:
Dans ta vue:Code:
1
2
3 public List<SelectListItem> Items { get; set; } public int SelectedItem { get; set; }
Code:<%= Html.DropDownList("SelectedItem", Model.Items)%>
je vien de tester ça aussi, mais j'ai toujours un message d'erreur qui bloque tout,
coté action:
la ou les modification vont etre faite:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public ActionResult Edit(int id) { var edit_Annonce = (from c in entity.annonce where c.idannonce == id select c).FirstOrDefault(); // c'est ce qui suit qui alimente normalement la drop dwon list ViewData["mission"] = new SelectList((from c in entity.mission select c).ToList(), "lib_mission","idmission"); return View(edit_Annonce); }
Code:
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
42
43
44
45
46
47
48 [HttpPost] public ActionResult Edit(FormCollection col) { try { annonce edit_Annonce = new annonce(); edit_Annonce.idannonce = Convert.ToInt32( col[0]); edit_Annonce.identreprise = Convert.ToInt32(col[1]); edit_Annonce.titre=col[2]; edit_Annonce.fonction = col[3]; edit_Annonce.descriptionposte = col[5]; edit_Annonce.profilrech = col[6]; edit_Annonce.typecontrat = col[7]; edit_Annonce.salaire = col[8]; edit_Annonce.contact = col[9]; edit_Annonce.date_annonce = Convert.ToDateTime(col[10]); //ici j'essaye de recuperer la valeur retourner par la dropdownlist pour la enristrer string miss = col[4]; var original_edit = (from c in entity.annonce where c.idannonce == edit_Annonce.idannonce select c).FirstOrDefault(); // je sauvegarde edit_Annonce.typeactivite = miss; entity.ApplyPropertyChanges(original_edit.EntityKey.EntitySetName, edit_Annonce); entity.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } }
coté view :
message d'erreur en piece jointeCode:
1
2 <td><% var mission = ViewData["mission"] as IEnumerable<SelectListItem>; Response.Write(Html.DropDownList("mission", mission));%>
Re,
Bon, j'ai parlé d'objet de type
Toi, tu créé un objet de type:Code:public List<SelectListItem>
Et il se trouve que tu as une erreur de cast...Code:new SelectList();
Je te donne un indice: il faut renvoyer un objet de type :
Code:List<SelectListItem>
Un moyen de remplir ta liste:
Code:
1
2
3
4
5
6 List<SelectListItem> list = new List<SelectListItem>(); foreach (var item in collection) { list.Add(new SelectListItem() { Text = item.Label }); }
enfin c'est reglé ouff !!
alors c'etait si simple ,
je vous montre comment j'ai fais ,
coté controlleur voila :
et coté vue j'ai mis ça :Code:
1
2
3
4
5
6
7
8 var l = (from c in entity.mission select c.lib_mission).ToList(); ViewData["mission"] = new SelectList(l, "lib_mission");
je precise que "mission" c'est le nom de ma table qui contien les element et "lib_mission" c'est le champs qui contient les element ,Code:
1
2
3 <%=Html.DropDownList("mission", ViewData["mission"] as SelectList)%>
et voili voila :)
ca marche comme sur des roulette
et encore plus si vous voullez pas vous cassé la tete avec la creation d'une table et y mettre les element,
par ex si vous avez que deux ou 3 element ben vous faite ça sur la vue :
Code:
1
2 <%=Html.DropDownList("TitleDropDown",new SelectList(new [] { "MR", "MRS", "MISS", "MS", "SIR", "REV", "DR"}))%>
=====> "TitleDropDown" : c'est juste un titre vous pouvez mettre ce que vous voulez
et entre les accolade vous mettez les element desirer
j'espere que ça aidera plein de monde
bon courage
:)