为什么下拉菜单没有首先显示我的空白项?这是我所拥有的
drpList.Items.Add(New ListItem("", ""))
With drpList
.DataSource = myController.GetList(userid)
.DataTextField = "Name"
.DataValueField = "ID"
.DataBind()
End With
编辑〜我绑定到一个通用列表,这可能是罪魁祸首吗?
为什么下拉菜单没有首先显示我的空白项?这是我所拥有的
drpList.Items.Add(New ListItem("", ""))
With drpList
.DataSource = myController.GetList(userid)
.DataTextField = "Name"
.DataValueField = "ID"
.DataBind()
End With
编辑〜我绑定到一个通用列表,这可能是罪魁祸首吗?
数据绑定后:
drpList.Items.Insert(0, new ListItem(String.Empty, String.Empty));
drpList.SelectedIndex = 0;
您可以使用AppendDataBoundItems=true
轻松添加:
<asp:DropDownList ID="drpList" AppendDataBoundItems="true" runat="server">
<asp:ListItem Text="" Value="" />
</asp:DropDownList>
数据绑定发生在您添加空白列表项之后,它会替换已经存在的内容,您需要从控制器将空白项添加到列表的开头,或者在数据绑定之后添加。
编辑:
从 ASP.Net 2.0 开始快速搜索后,有一个“AppendDataBoundItems”true 属性,您可以将其设置为...附加数据绑定项。
详情见
我认为更好的方法是先插入空白项,然后像你一直在做的那样绑定数据。但是,您需要设置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”所说,诀窍在于“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";
第一关:
ddlCategory.Items.Add(new ListItem("--please select--", "-1"));
ddlCategory.AppendDataBoundItems = true;
ddlCategory.SelectedIndex = -1;
ddlCategory.DataBind();
缓存 2:
ddlCategory.Items.Insert(0, new ListItem("-- please select --", "0"));
(测试正常)
您还可以将空白选择与具有内容的选择结合起来:
select '' value, '' name
union
select value, name from mytable