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

Sai*_*han 126 asp.net drop-down-menu

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

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

With drpList
    .DataSource = myController.GetList(userid)
    .DataTextField = "Name"
    .DataValueField = "ID"
    .DataBind()
End With
Run Code Online (Sandbox Code Playgroud)

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

Jas*_*onS 269

在您的数据绑定之后:

drpList.Items.Insert(0, new ListItem(String.Empty, String.Empty));
drpList.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)

  • *这可能有助于那些寻找答案的人使用sqlDataSource数据*在我的情况下,我还必须添加drpList.AppendDataBoundItems = true; 将它绑定到Page_Load方法中的当前数据 (3认同)

小智 28

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

<asp:DropDownList ID="drpList" AppendDataBoundItems="true" runat="server"><br/>
    <asp:ListItem Text="" Value="" /><br/>
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

  • 别忘了设置Selected ="true" (3认同)

Whi*_*isk 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

  • 有人认为你需要注意的是,每次回发后你的下拉列表会一遍又一遍地追加相同的数据. (4认同)

And*_*age 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();
}
Run Code Online (Sandbox Code Playgroud)


小智 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢"打蛋"


Dil*_*e-O 5

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

Dim liFirst As New ListItem("", "")
drpList.Items.Insert(0, liFirst)
Run Code Online (Sandbox Code Playgroud)