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

时间:2008-11-05 23:00:12

标签: asp.net drop-down-menu

为什么下拉列表没有显示我的空白项目?这就是我所拥有的

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

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

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

10 个答案:

答案 0 :(得分:261)

在您的数据绑定之后:

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

答案 1 :(得分:28)

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

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

答案 2 :(得分:24)

数据绑定在您添加空白列表项后发生,它取代了已存在的项,您需要将空白项添加到控制器列表的开头,或者在数据绑定后添加它。

编辑:

从ASP.Net 2.0开始快速搜索后,有一个“AppendDataBoundItems”真属性,你可以设置为...附加数据绑定项。

详见

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

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

答案 3 :(得分:13)

我认为更好的方法是首先插入空白项,然后像你一直那样绑定数据。但是,您需要设置列表控件的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();
}

答案 4 :(得分:6)

就像“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;
    }
}

谢谢“Whisk”

答案 5 :(得分:5)

进行数据绑定,然后添加以下内容:

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

答案 6 :(得分:3)

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

答案 7 :(得分:3)

简单

最后

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

答案 8 :(得分:1)

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"));

(已经测试好)

答案 9 :(得分:0)

您还可以将空白选择与具有内容的选择结合:

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