asp.net drop-down-menu

Asp.net-Agregar un elemento en blanco en la parte superior de la lista desplegable



drop-down-menu (10)

Como dijo "Whisk", el truco está en la propiedad "AppendDataBoundItems"

protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DropDownList1.AppendDataBoundItems = true; DropDownList1.Items.Insert(0, new ListItem(String.Empty, String.Empty)); DropDownList1.SelectedIndex = 0; } }

Gracias "Batidor"

¿Por qué el menú desplegable no muestra primero mi elemento en blanco? Esto es lo que tengo

drpList.Items.Add(New ListItem("", "")) With drpList .DataSource = myController.GetList(userid) .DataTextField = "Name" .DataValueField = "ID" .DataBind() End With

Editar ~ Estoy vinculado a una lista de Generig, ¿podría ser este el culpable?


Creo que una mejor manera es insertar el elemento en blanco primero, luego vincular los datos tal como lo ha estado haciendo. Sin embargo, debe establecer la propiedad AppendDataBoundItems del control de lista.

Utilizamos el siguiente método para vincular cualquier fuente de datos a cualquier control de lista ...

public static void BindList(ListControl list, IEnumerable datasource, string valueName, string textName) { list.Items.Clear(); list.Items.Add("", ""); list.AppendDataBoundItems = true; list.DataValueField = valueName; list.DataTextField = textName; list.DataSource = datasource; list.DataBind(); }


Después de su databind:

drpList.Items.Insert(0, new ListItem(String.Empty, String.Empty)); drpList.SelectedIndex = 0;


El enlace de datos se lleva a cabo después de agregar el elemento de la lista en blanco y reemplaza lo que ya existe, debe agregar el elemento en blanco al comienzo de la lista desde su controlador o agregarlo después del enlace de datos.

EDITAR:

Después de buscar en Google esto rápidamente desde ASP.Net 2.0, hay una propiedad verdadera "AppendDataBoundItems" que puede establecer para ... anexar los elementos de datos.

para más detalles ver

http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=281 o

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx


Haga su enlace de datos y luego agregue lo siguiente:

Dim liFirst As New ListItem("", "") drpList.Items.Insert(0, liFirst)


Puede usar AppendDataBoundItems=true para agregar fácilmente:

<asp:DropDownList ID="drpList" AppendDataBoundItems="true" runat="server"><br/> <asp:ListItem Text="" Value="" /><br/> </asp:DropDownList>


También podría tener una unión de la selección en blanco con la selección que tiene contenido:

select '''' value, '''' name union select value, name from mytable


parece que está agregando un elemento en blanco y luego un enlace de datos, que vaciaría la lista; intente insertar el elemento en blanco después del enlace de datos


sencillo

Al final

ddlProducer.Items.Insert(0, "");


ddlCategory.DataSource = ds;
ddlCategory.DataTextField = "CatName";
ddlCategory.DataValueField = "CatID";

Cách 1:

ddlCategory.Items.Add(new ListItem("--please select--", "-1"));
ddlCategory.AppendDataBoundItems = true;
ddlCategory.SelectedIndex = -1;

ddlCategory.DataBind();

Cách 2:

ddlCategory.Items.Insert(0, new ListItem("-- please select --", "0"));

(Probado OK)