Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# dropdownlist无法识别listitem_C#_Asp.net_Drop Down Menu - Fatal编程技术网

C# dropdownlist无法识别listitem

C# dropdownlist无法识别listitem,c#,asp.net,drop-down-menu,C#,Asp.net,Drop Down Menu,我有一个dropdownlist,它的填充由下面显示的函数完成-: public void filldropdown() { MySqlConnection conn = new MySqlConnection(connectionString); conn.Open(); string query = "select * from category"; MySqlCommand cmd = new MySqlCommand(query,conn); My

我有一个dropdownlist,它的填充由下面显示的函数完成-:

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>

我只是不知道第一个项目是如何从数据库中出来的,而不是“---选择--”


谢谢您的时间。

您已经更改了数据源:

        DropDownList1.DataSource = dr;
        DropDownList1.DataTextField = "name";
        DropDownList1.DataValueField = "id";
        DropDownList1.DataBind();
当您将数据源更改为
dr
时,它将删除您当前的
——选择---
项(如预期)

您需要在
数据源
绑定后添加它

 DropDownList1.Items.Insert(0, new ListItem("---- select ----", 0));
 DropDownList1.SelectedIndex = 0;
您需要将DropdownList的属性设置为true。否则,数据绑定将清除现有值。

尝试此操作

    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();
    }

有很多方法可以将项添加到数据绑定下拉列表中,比如我使用的Insert指定插入的位置(在哪个位置)


您是否尝试过按照PatterMister的建议设置附加数据绑定项?很抱歉延迟接受答案,它说您无法在7分钟内接受答案
DropDownList1.Items.Insert(1, "-- Select --");