Bonjour,
J'ai un souci avec une DropDownList que je n'arrive pas à remplir (tout du moins elle est vide à l'affichage).
J'ai utilisé le code C# proposé sur MSDN mais malgrès cela, ma liste reste vide.
Voici le code avec un commentaire pour éclaircir une partie non concernée par le problème (tout du moins, il me semble).
Code : Sélectionner tout - Visualiser dans une fenêtre à part <asp:DropDownList id="contentUrls" runat="server"/>J'ai du mal à trouver la coquille... Est-ce que quelqu'un peut m'aiguiller ?
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 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { contentUrls.DataSource = CreateDataSource(); contentUrls.DataTextField = "ContentTextField"; contentUrls.DataValueField = "ContentValueField"; contentUrls.DataBind(); } } ICollection CreateDataSource() { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("ContentTextField")); dt.Columns.Add(new DataColumn("ContentValueField")); //Ceci est un code qui va récupérer les nom des fichiers présents dans le dossier content. Il fonctionne parfaitement hors de ce contexte. DirectoryInfo di = new DirectoryInfo(Server.MapPath("../content")); FileInfo[] rgFiles = di.GetFiles("*_content.html"); foreach (FileInfo fi in rgFiles) { dt.Rows.Add(CreateRow(fi.Name, fi.Name, dt)); } //Tout de même, au cas ou un problème intervienne ci dessus, j'ajoute une ligne en dur. dt.Rows.Add(CreateRow("test", "test", dt)); DataView dv = new DataView(dt); return dv; } DataRow CreateRow(String Text, String Value, DataTable dt) { DataRow dr = dt.NewRow(); dr[0] = Text; dr[1] = Value; return dr; }
Merci !
Résolu: La faute ne viens pas du code mais du contexte. Ceci fonctionne à merveille, à utiliser sans modération !
Partager