Net-在下拉列表的顶部添加空白项

为什么下拉列表没有首先显示我的空白项? 这是我有什么

drpList.Items.Add(New ListItem("", ""))


With drpList
.DataSource = myController.GetList(userid)
.DataTextField = "Name"
.DataValueField = "ID"
.DataBind()
End With

编辑 ~ 我绑定到一个通用列表,这可能是罪魁祸首?

247278 次浏览

看起来您正在添加一个空项,然后是数据绑定,这将清空列表; 尝试在数据绑定之后插入空项

数据绑定发生在您添加空白列表项之后,它替换了已经存在的内容,您需要从您的控制器将空白项添加到 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属性。

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

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轻松地添加:

<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.Items.Add(new ListItem("--please select--", "-1"));
ddlCategory.AppendDataBoundItems = true;
ddlCategory.SelectedIndex = -1; < br >

ddlCategory.DataBind();

第二条:

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

(测试正常)

您还可以将空白 select 与包含内容的 select 联合起来:

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