DropDownList.SelectedItem.Text 始终是 DropDownList C# 中的第一项

Posted

技术标签:

【中文标题】DropDownList.SelectedItem.Text 始终是 DropDownList C# 中的第一项【英文标题】:DropDownList.SelectedItem.Text always is the first item in the DropDownList C# 【发布时间】:2020-02-18 03:49:01 【问题描述】:

我做了一个级联下拉列表。

这是第一个ddl:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack ="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="-- Select One --"></asp:ListItem>
<asp:ListItem Text="Game"></asp:ListItem>
<asp:ListItem Text="Book"></asp:ListItem>

第二个 ddl 项目是根据 ddl1 (OnSelectedIndexChanged) 中选择的项目添加的

根据 ddl2 (OnSelectedIndexChanged) 中选择的项目添加第三个 dll 项目

我有一个问题,当我使用 DropDownList3.SelectedItem.Text 时,它总是返回第一个项目(基于每个选择的 CSGO 或 Dota),ddl1 和 ddl2 对我来说很好。

这里是 ddl2 函数:

   protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    
        DropDownList3.Visible = true;
        if (DropDownList2.SelectedValue == "A")
        
            DropDownList3.Items.Clear();
            DropDownList3.Items.Insert(0, new ListItem("-Select-", "N"));
            DropDownList3.Items.Insert(1, new ListItem("CSGO", ""));
            DropDownList3.Items.Insert(2, new ListItem("CSO", ""));
            DropDownList3.Items[0].Attributes["disabled"] = "disabled";
        
        else if (DropDownList2.SelectedValue == "B")
        
            DropDownList3.Items.Clear();
            DropDownList3.Items.Insert(0, new ListItem("-Select-", "N"));
            DropDownList3.Items.Insert(1, new ListItem("Dota", ""));
            DropDownList3.Items.Insert(2, new ListItem("LoL", ""));

【问题讨论】:

【参考方案1】:

我怀疑您的问题是因为您禁用了第一项,所以它变得不可选择。

尝试不使用此行,看看您的结果是否不同。

DropDownList3.Items[0].Attributes["disabled"] = "disabled";

【讨论】:

我删除它但还是一样,我可以选择里面的任何项目,但问题是当我点击提交按钮将数据提交到数据库时,数据总是第一项【参考方案2】:

我通过使用 selecteditem.value 成功完成了它,我为它赋值并让它工作,我想知道为什么 selecteditem.text 不起作用。

【讨论】:

以上是关于DropDownList.SelectedItem.Text 始终是 DropDownList C# 中的第一项的主要内容,如果未能解决你的问题,请参考以下文章

Web 表单中的智能卡授权

SQL Server 插入数据后获得自增主键值

用FileUpLoad控件上传图片后,如何将读取出的图片路径存储下来?