Si te ha tocado desarrollar una pagina web en aspnet en donde se requiere un dropdownlist que no muestre ningun valor inicial y no te quieres complicar la vida buscando soluciones de terceros o incluso usar el ajaxcontroltoolkit aqui te dejo una solución facil al problema:

1. Problema: Quieres que el DropDownList aparezca asi:




Pero siempre te sale asi:





3. Solucion: Cuando el metodo DataBound del DropDownList se ejecute debes de agregar un nuevo item al inicio del DropDownList ya sea que le dejes el texto vacio o que les escribas alguna indicacion, por ejemplo "Seleccione un usuario", el bloque de codigo a continuacion muestra como:

Texto en blanco

protected void DropDownList1_DataBound(object sender, EventArgs e)
{
DropDownList1.Items.Insert(0, new ListItem("","0"));
}

Con Texto

protected void DropDownList1_DataBound(object sender, EventArgs e)
{
DropDownList1.Items.Insert(0, new ListItem("Seleccione un usuario","0"));
}

6 comentarios:

Alejandro dijo...

la solucion no funciona cuando el drop es cargado desde BD.
sldos

willycamps dijo...

Que tal Eddy. Como estas?
Que bueno que podas publicar este tipo de ilustraciones. No se si conoces este sitio:

http://stackoverflow.com/

Muy interesante tambien a la hora de las dudas.

Saludos Eddy.

Maria dijo...

Muy buen aporte, la solucion si que funciona cuando es cargado de BBDD

Alejandro dijo...

Hola, claro funciona solo debes declarar "AppendDataBoundItems" como True...gracias...sldos

Camilein dijo...

Excelente muchas gracias, tenia el dropdownlist enlazado a la base de datos y no queria que me aparecieran de inmediato los datos. Funciona de maravilla. Se agradece

Lord Belial dijo...

Me funcionó de maravilla, muchas gracias.
Saludos Eddy.