下拉列表中的第一个项目为空白

时间:2009-07-02 16:32:49

标签: asp.net sql-server ado.net

如何将DropDownList中的第一项放入空白?在VB中就像DropDownList.index [0] =“”; 我这样做了:

string StrConn = ConfigurationManager.ConnectionStrings["connSql"].ConnectionString;
    SqlConnection conn = new SqlConnection(StrConn);

    conn.Open();

    SqlDataReader dr;

    string sql;
    sql = @"Select Nome From DanielPessoas";

    SqlCommand cmd = new SqlCommand(sql, conn);
    dr = cmd.ExecuteReader();

    DropDownList1.DataSource = dr;
    DropDownList1.DataTextField = "Nome";
    DropDownList1.DataValueField = "Nome";
    DropDownList1.DataBind(); 

6 个答案:

答案 0 :(得分:13)

在您的DataBind调用之后,添加此代码。

DropDownList1.Items.Insert(0, new ListItem(string.Empty, string.Empty));

答案 1 :(得分:7)

如果将AppendDataBoundItems属性设置为true,则可以在aspx文件中定义空项。

<asp:DropDownList ID="ddlPersons" runat="server" AppendDataBoundItems="true" DataValueField="ID" DataTextField="Name">
    <asp:ListItem> -- please select person -- </asp:ListItem>
</asp:DropDownList>

然后您可以在代码隐藏中对数据库中的项进行数据绑定:

ddlPersons.DataSource = personsList;
ddlPersons.DataBind();

我认为这个“空项目”是演示文稿/ UI,所以我喜欢把它放在aspx中。它还使代码隐藏更简单。

答案 2 :(得分:1)

做这样的事情:这是一个简单的例子

<asp:DropDownList ID="ddlFruits" runat="server">

        <asp:ListItem Value="1" Text="Oranges"></asp:ListItem>
        <asp:ListItem Value="2" Text="Apples"></asp:ListItem>
        <asp:ListItem Value="3" Text="Grapes"></asp:ListItem>
        <asp:ListItem Value="4" Text="Mangoes"></asp:ListItem>
    </asp:DropDownList>

背后的代码中
ddlFruits.Items.Insert(0, new ListItem(string.Empty, "0"));

答案 3 :(得分:1)

你可以这样做:

dropdownlist1.Items.Insert(0, new ListItem("Select here...", string.Empty));

答案 4 :(得分:0)

您可以在SQL中执行此操作:

sql = @"Select Nome From DanielPessoas UNION ALL Select '' Order by Nome";

答案 5 :(得分:0)

我们可以在C#的前端进行此操作

@Html.DropDownList("sample",new SelectList(DropDownList1, "DataTextField", "DataValueField "), "Select")