Asp.net – 在下拉列表顶部添加空白项目

为什么下拉菜单没有先显示我的空白项目? 这是我的

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

编辑〜我绑定到Generig列表,这可能是罪魁祸首?

数据绑定后:

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

数据绑定发生在添加空白列表项目之后,它将replace已经存在的项目,您需要将空白项目从控制器添加到List的开头,或者在数据绑定之后添加它。

编辑:

在ASP.Net 2.0中快速search后,有一个“AppendDataBoundItems”属性,您可以设置为…追加数据绑定项目。

详情请参阅

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

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

你可以使用AppendDataBoundItems=true来轻松添加:

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

我认为更好的方法是先插入空白项,然后像刚刚一样绑定数据。 但是,您需要设置列表控件的AppendDataBoundItems属性。

我们使用以下方法将任何数据源绑定到任何列表控件…

 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(); } 

像“扫”说,诀窍是在“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; } } 

感谢“拂”

做你的数据绑定,然后添加以下内容:

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

它看起来像你正在添加一个空白项目,然后数据绑定,这将清空列表; 尝试在数据绑定后插入空白项目

简单

最后

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

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

Cách1:

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

ddlCategory.DataBind();

Cách2:

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

(testing确定)

您也可以将空白select与具有内容的select结合使用:

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