c# - drop - combobox editable html
C#- Volcar una lista en una lista desplegable (6)
¿Por qué no vincular el DDL directamente a la lista como
DropDownList ddl = new DropDownList();
ddl.DataSource = nameList;
ddl.DataBind();
List<String> nameList = new List<String>();
DropDownList ddl = new DropDownList();
La lista se rellena aquí, luego se ordena:
nameList.Sort();
Ahora necesito colocarlo en la lista desplegable, que es donde tengo problemas (usando foreach):
foreach (string name in nameList){
ddl.Items.Add(new ListItem(nameList[name].ToString()));
}
Ningún trabajador, ¿alguna sugerencia? Me está dando errores de compilación:
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''
Eso sería porque List no está indexado por cadena (nombre) sino por ints.
foreach (string name in nameList)
{
ddl.Items.Add(new ListItem(name));
}
Arreglará eso.
Reemplace esto:
ddl.Items.Add(new ListItem(nameList[name].ToString()));
con este:
ddl.Items.Add(new ListItem(name));
Hecho como la cena
foreach (string name in nameList){
ddl.Items.Add(new ListItem(nameList[name].ToString()));
}
Es tu problema.
debería verse más como
foreach (string name in nameList){
ddl.Items.Add(new ListItem(name.ToString()));
}
Pero en realidad me gusta la sugerencia de Marcus un poco mejor.
Obtiene ese error porque la colección nameList
es una List
por lo que debe acceder a ella utilizando un índice y no una cadena (use el nombre).
Entonces puedes escribir:
foreach (string name in nameList){
ddl.Items.Add(name);
}
Por cierto, la mejor manera de hacerlo es:
ddl.DataSource = nameList;
ddl.DataBind();
ddl.DataSource = nameList;
ddl.DataBind();
No funciona si se trata de una lista de SharePoint. Error: el origen de datos es un tipo no válido. Debe ser un IListSource, IEnumerable o IDataSource. Decidió intervenir, en caso de que los desarrolladores de SharePoint pensaran que esto era para una SPList en lugar de List <string>, como se escribió anteriormente.
Hay una forma de vincularse a una SPList, pero usaría una SPListItemCollection, o iría una mejor y usaría un SPDataSource. Para los desarrolladores de SharePoint, vea este blog de Chris O ''Brien .