无法在代码中获取 DropDownList 的文本 - 可以获取值但不能获取文本

Posted

技术标签:

【中文标题】无法在代码中获取 DropDownList 的文本 - 可以获取值但不能获取文本【英文标题】:Cant get text of a DropDownList in code - can get value but not text 【发布时间】:2010-12-08 06:45:43 【问题描述】:

我正在使用 ASP.NET 3.5

我有一个名为 lstCountry 的下拉列表,其中包含这样的项目:

<asp:ListItem Value="United States">Canada</asp:ListItem> 

这将显示加拿大,但在代码中该值将是“美国”。如何在我的代码中检索值“Canada”?

我已经尝试了所有这些,所有这些都返回“美国”

lstCountry.Text
lstCountry.SelectedValue
lstCountry.SelectedItem.Text

我的下拉列表:

 <asp:DropDownList ID="lstCountry" runat="server" Width="200px">
              <asp:ListItem>Please Select</asp:ListItem>
  <asp:ListItem>United States</asp:ListItem>
  <asp:ListItem Value="United States">Canada</asp:ListItem>
 </asp:DropDownList>

我如何读取代码中的值:

    Dim country As String
    country = lstCountry.SelectedItem.Text

【问题讨论】:

用电子邮件回复你。检查。 【参考方案1】:

使用添加列表

<asp:ListItem Value="United States" Text="Canada"></asp:ListItem>

然后试试

DropDownList1.SelectedItem.Text

我发现了你的错误。

<asp:ListItem>United States</asp:ListItem> 

改成

<asp:ListItem>United States1</asp:ListItem> 

然后你会得到实际的价值。

问题是什么,您的下拉列表中有两个相同的值,当页面回发时,它采用第一个值作为选择并相应地给出结果。如果您在选择回发美国值后注意到什么时候

【讨论】:

不,这也是返回值“美国” 那么您的下拉列表中肯定有其他问题 你在某处设置了 selectedIndex=1 吗? 不,不是这样,我的清单中还有很多项目。如果我在文本和值相同的下方选择一个,则不会返回美国。【参考方案2】:

AppendDataBoundItems="true" 需要设置。

【讨论】:

【参考方案3】:

怎么样

lstCountry.Items[lstCountry.SelectedIndex].Text;

【讨论】:

不,这也是返回值“美国”【参考方案4】:

试试

lstCountry.SelectedItem.Text

【讨论】:

不,这也是返回值“美国” 请提供更多代码,我猜你在其他地方做错了什么【参考方案5】:

你可以试试

lstCountry.SelectedItem.Text

【讨论】:

不,这也是返回值“美国”【参考方案6】:

遇到了同样的问题,刚刚解决了,我用了字符串 [variable_Name] =dropdownlist1.SelectedItem.Text;

【讨论】:

【参考方案7】:

看看这里,这里有一个概念验证页面和演示,您可以使用它从下拉列表中获取任何内容:asp:DropDownList Control Tutorial Page

【讨论】:

以上是关于无法在代码中获取 DropDownList 的文本 - 可以获取值但不能获取文本的主要内容,如果未能解决你的问题,请参考以下文章

C#后台获取dropdownList选中的值value或文本text

HTML.Kendo().Dropdownlist 设置默认项

第二个Dropdownlist无法选择其他选项

在 Windows 7 中 DropDownStyle = DropDownList 时,ComboBox.SelectedValue 与显示的文本不匹配

获取文本框文本,javascript 已更改 [重复]

如何在 MVC 的控制器中获取 DropDownList SelectedValue