如何为此ASP.NET DropDownList控件添加默认的"选择"选项?

use*_*976 9 c# asp.net linq-to-entities

我是一名新的ASP.NET开发人员,我正在尝试学习Linq-To-Entities.我试图将DropDownList绑定到Linq语句,以检索状态实体中的状态列表.一切都很好.但是,我现在正在尝试向DropDownList添加"选择"选项,但它不适用于我. 你能告诉我如何解决这个问题吗?

ASP.NET代码:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
                OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DropDownList1.Items.Add(new ListItem("Select", "0", true));
            bindStatusDropDownList();
        }
    }

private void bindStatusDropDownList()
    {
        Status status = new Status();
        DropDownList1.DataSource = status.getData();
        DropDownList1.DataValueField = "ID";
        DropDownList1.DataTextField = "Description";
        DropDownList1.DataBind();
    }
Run Code Online (Sandbox Code Playgroud)

更新:

我也尝试在DropDownList的标记集中做,但它对我来说也不起作用

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
                OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                    <asp:ListItem Selected="True" Value="0" Text="Select"></asp:ListItem>
            </asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

Bel*_*gix 22

它无法正常工作的原因是因为您要将一个项目添加到列表中,然后使用new DataSource清除整个列表,这将清除并重新填充列表,丢失第一个手动添加的项目.

所以,你需要反向做这样的事情:

Status status = new Status();
DropDownList1.DataSource = status.getData();
DropDownList1.DataValueField = "ID";
DropDownList1.DataTextField = "Description";
DropDownList1.DataBind();

// Then add your first item
DropDownList1.Items.Insert(0, "Select");
Run Code Online (Sandbox Code Playgroud)

  • 如果要在绑定下拉控件后插入带有值和文本的新项,则使用ddlClientGroup.Items.Insert(0,New ListItem(" - Choose - ","0")) (3认同)

Kon*_*lev 9

虽然这是一个相当古老的问题,但另一种方法是更改AppendDataBoundItems属性.所以代码将是:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
                  OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
                  AppendDataBoundItems="True">
     <asp:ListItem Selected="True" Value="0" Text="Select"></asp:ListItem>
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)