J'ai créé une colonne personnalisée qui récupère les éléments d'une autre liste.
J'arrive à sauvegarder la valeur correctement mais lorsque je passe en mode modification, le champ sélectionné de ma liste déroulante est le premier de la liste et non plus la valeur sauvegardée.
Comment faire pour garder ce choix et ne pas avoir forcement besoin de sélectionner la valeur dans la liste?
Si jamais voici mon code
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
42
43
44
45
46
47
48
49
50
51
52
53 protected override void CreateChildControls() { if (Field == null) return; base.CreateChildControls(); if (ControlMode == Microsoft.SharePoint.WebControls.SPControlMode.Display) return; try { //On pointe sur la liste Webs définie dans le user control Societe = TemplateContainer.FindControl("Societe") as DropDownList; Societe.SelectedIndexChanged += new EventHandler(Societe_SelectedIndexChanged); //Vérification que tous les contrôles ont bien été retrouvés if (Societe == null) throw new ApplicationException("Failed to initialize controls"); //On ajoute une entrée bidon pour forcer l'utilisateur //à faire un choix qui délenche le onchange Societe.Items.Add("Choose..."); //récupère la liste des sociétés SPWeb web = SPContext.Current.Web; SPList list = web.Lists["Société"]; //nom de la liste for (int i = 0; i < list.ItemCount; i++) { Societe.Items.Add(list.Items[i]["Nom de la société"].ToString()); } } catch (Exception Ex) { //on lance une app exception qui sera //catchée par SP throw new ApplicationException(Ex.Message); } } public override object Value { get { EnsureChildControls(); return Societe.SelectedValue; } }
Partager