2

我有一个下拉列表,其填充由如下所示的函数完成:

public void filldropdown()
{
    MySqlConnection conn = new MySqlConnection(connectionString);
    conn.Open();
    string query = "select * from category";
    MySqlCommand cmd = new MySqlCommand(query,conn);
    MySqlDataReader dr = cmd.ExecuteReader();
    if(dr.HasRows)
    {
        DropDownList1.Items.Add(new ListItem("---select---","null"));
        while(dr.Read())
        {
            DropDownList1.DataSource = dr;
            DropDownList1.DataTextField = "name";
            DropDownList1.DataValueField = "id";
            DropDownList1.DataBind();
        }
    }
    conn.Close();
}

aspx 中的下拉列表是-:

<asp:DropDownList OnSelectedIndexChanged="showlabel" AutoPostBack="true"    ID="DropDownList1" runat="server">
        <asp:ListItem Text="---select---" Value="null"></asp:ListItem>
    </asp:DropDownList>

我只是不知道第一个项目是如何来自数据库而不是“---select---”

谢谢你的时间。

4

4 回答 4

4

您需要将 DropdownList 的AppendDataBoundItems属性设置为 true。否则,数据绑定将清除现有值。

于 2013-09-03T12:54:22.300 回答
1

您已更改数据源:

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

当您将 DataSource 更改为dr它时,它将删除您当前的---select---项目(如预期的那样)。

您需要在DataSource绑定后添加它。

 DropDownList1.Items.Insert(0, new ListItem("---- select ----", 0));
 DropDownList1.SelectedIndex = 0;
于 2013-09-03T12:54:16.213 回答
0

尝试这个

    public void filldropdown()
    {
        MySqlConnection conn = new MySqlConnection(connectionString);
        conn.Open();
        string query = "select * from category";
        MySqlCommand cmd = new MySqlCommand(query, conn);

        MySqlDataAdapter da = new MySqlDataAdapter(cmd);
        DataSet ds=new DataSet();
        da.Fill(ds);
        DropDownList DropDownList1 = new DropDownList();
        DropDownList1.DataSource = ds;
        DropDownList1.DataTextField = "name";
        DropDownList1.DataValueField = "id";
        DropDownList1.DataBind();
        DropDownList1.Items.Insert(0,new ListItem("---select---", "null"));
        conn.Close();
    }
于 2013-09-03T12:57:09.407 回答
0

有多种方法可以将项目添加到数据绑定下拉列表中,例如我正在使用插入指定插入位置(在哪个位置)。

DropDownList1.Items.Insert(1, "-- Select --");
于 2013-09-03T12:57:22.237 回答