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”属性,您可以设置为…追加数据绑定项目。
详情请参阅
你可以使用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