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
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)