c# - spalten - excel dropdown wenn dann bedingung
C#- Eine Liste in eine Dropdown-Liste verschieben (4)
Das wäre, weil List nicht von string (name) sondern von ints indiziert wird.
foreach (string name in nameList)
{
ddl.Items.Add(new ListItem(name));
}
Wird das beheben.
https://src-bin.com
List<String> nameList = new List<String>();
DropDownList ddl = new DropDownList();
Die Liste wird hier aufgefüllt und dann sortiert:
nameList.Sort();
Jetzt muss ich es in die Dropdown-Liste einfügen, wo ich Probleme habe (mit foreach):
foreach (string name in nameList){
ddl.Items.Add(new ListItem(nameList[name].ToString()));
}
Keine Arbeit - irgendwelche Vorschläge? Es gibt mir Kompilierungsfehler:
Error - The best overloaded method match for 'System.Collections.Generic.List<string>.this[int]' has some invalid arguments
Error - Argument '1': cannot convert from 'string' to 'int'
Answer #1
Ersetzen Sie dies:
ddl.Items.Add(new ListItem(nameList[name].ToString()));
mit diesem:
ddl.Items.Add(new ListItem(name));
Fertig wie ein Abendessen.
Answer #2
foreach (string name in nameList){
ddl.Items.Add(new ListItem(nameList[name].ToString()));
}
Ist dein Problem.
es sollte mehr wie aussehen
foreach (string name in nameList){
ddl.Items.Add(new ListItem(name.ToString()));
}
Aber ich mag Marcus 'Vorschlag eigentlich ein bisschen besser.
Answer #3
Sie erhalten diesen Fehler, weil die AuflistungsnameListe eine List
sodass Sie darauf mit einem Index und nicht mit einer Zeichenfolge zugreifen müssen (Sie verwenden den Namen).
Du kannst also schreiben:
foreach (string name in nameList){
ddl.Items.Add(name);
}
BTW der beste Weg, dies zu tun ist:
ddl.DataSource = nameList;
ddl.DataBind();