为什么下拉列表没有首先显示我的空白项? 这是我有什么
drpList.Items.Add(New ListItem("", "")) With drpList .DataSource = myController.GetList(userid) .DataTextField = "Name" .DataValueField = "ID" .DataBind() End With
编辑 ~ 我绑定到一个通用列表,这可能是罪魁祸首?
看起来您正在添加一个空项,然后是数据绑定,这将清空列表; 尝试在数据绑定之后插入空项
数据绑定发生在您添加空白列表项之后,它替换了已经存在的内容,您需要从您的控制器将空白项添加到 List 的开头,或者在数据绑定之后添加它。
编辑:
在使用 ASP.Net 2.0快速搜索这个属性之后,有一个“ AppendDatabound Items”真实属性,您可以将其设置为... 追加数据绑定项。
详情请参阅
Http://imar.spaanjaars.com/quickdocid.aspx?quickdoc=281
Http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx
执行数据绑定,然后添加以下内容:
Dim liFirst As New ListItem("", "") drpList.Items.Insert(0, liFirst)
在数据绑定之后:
drpList.Items.Insert(0, new ListItem(String.Empty, String.Empty)); drpList.SelectedIndex = 0;
我认为更好的方法是首先插入空白项,然后像您一直做的那样绑定数据。但是,您需要设置列表控件的 AppendDataBoundItems属性。
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(); }
就像“ Whisk”Said 一样,诀窍在于“ AppendDatabound Items”属性
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; } }
谢谢“打蛋器”
很简单
终于
ddlProducer.Items.Insert(0, "");
您可以使用 AppendDataBoundItems=true轻松地添加:
AppendDataBoundItems=true
<asp:DropDownList ID="drpList" AppendDataBoundItems="true" runat="server"> <asp:ListItem Text="" Value="" /> </asp:DropDownList>
ddlCategory.DataSource = ds; ddlCategory.DataTextField = "CatName"; ddlCategory.DataValueField = "CatID"; < br >
ddlCategory.DataSource = ds;
ddlCategory.DataTextField = "CatName";
ddlCategory.DataValueField = "CatID";
第一条:
ddlCategory.Items.Add(new ListItem("--please select--", "-1")); ddlCategory.AppendDataBoundItems = true; ddlCategory.SelectedIndex = -1; < br >
ddlCategory.Items.Add(new ListItem("--please select--", "-1"));
ddlCategory.AppendDataBoundItems = true;
ddlCategory.SelectedIndex = -1;
ddlCategory.DataBind();
第二条:
ddlCategory.Items.Insert(0, new ListItem("-- please select --", "0"));
(测试正常)
您还可以将空白 select 与包含内容的 select 联合起来:
select '' value, '' name union select value, name from mytable