下拉列表只返回第一个项目的文本/值

本文关键字:文本 项目 返回 第一个 下拉列表 | 更新日期: 2023-09-27 17:50:22

编辑:所以我发现这行listItem.Value = rdr["lvl"].ToString();在下拉菜单中为每个项目添加了相同的值。由于每个文本项都有相同的值,我猜它总是默认为第一个文本项。我现在通过另一个查询而不是下拉框传递lvl。感谢所有有帮助的输入!

我正在努力完成一个非常简单的任务,我以前已经做过很多次了。由于某种原因,我不能让我的下拉菜单正确通过SelectedItemSelectedValue

无论我选择哪个项目,SelectedItemSelectedValue总是为下拉列表中的第一个项目返回。

我做错了什么?

定义下拉菜单和按钮:

<asp:DropDownList ID="DropDownList1" runat="server" >
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />

PageLoad:

myConnection.Open();
SqlCommand rpt = new SqlCommand(getreports, myConnection);
SqlDataReader rdr = rpt.ExecuteReader();
if (!Page.IsPostBack)
{
    while (rdr.Read())
    {
        ListItem listItem = new ListItem();
        listItem.Text = rdr["manager"].ToString();
        listItem.Value = rdr["lvl"].ToString();
        DropDownList1.Items.Add(listItem);
    }
    rdr.Close();
    myConnection.Close();
}

应通过SelectedItemSelectedValue的按钮点击代码:

    protected void Button1_Click(object sender, EventArgs e)
    {            
        string user = DropDownList1.SelectedItem.Text;
        string lvl = DropDownList1.SelectedValue;
        Label1.Text = user;
        Label2.Text = lvl;
    }

下拉列表只返回第一个项目的文本/值

我意识到为每一项分配了相同的值。这就是为什么下拉菜单中的第一个项目一直被传递,而不管选择是什么。只要值不同,上述所有代码都按预期工作。