editable drop down combo c# list drop-down-menu

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 .