【问题标题】:DropDownList Incorrect SelectedIndexDropDownList 不正确的 SelectedIndex
【发布时间】:2016-07-29 18:30:21
【问题描述】:

DropDownList 控件返回了错误的项目。

当DropDownList.SelectedValue = -1 时,我的代码使用SelectedItem 执行特定操作。

在测试代码时,我在 index = 2 处选择项目 A。结果DropDownList.SelectedItem = "A"。到目前为止还不错。

但我在 index = 3 选择了项目 B。结果DropDownList.SelectedItem = "A"。根据调试器的说法,DropDownList.SelectedIndex = 2 在这两种情况下都是如此。

是什么导致SelectedIndex 始终采用相同的值?

注意:当我选择 C 到 Z 的项目时,它们会返回正确的 SelectedText 和 SelectedIndex。

if(Int32.Parse(dropdown.SelectedValue).Equals(-1))
{
    // Do something with the selected item
    DoThis(dropdown.SelectedItem.ToString());
}

【问题讨论】:

  • 应该是dropdown.SelectedIndex == -1
  • 让我们看看你在 Page_Load() 中做了什么。
  • @RickS Page_Load() 应该没什么区别。 DoThis() 将一个值保存到我的数据库中,因此该值应该是可以的。两个项目的价值是一样的。但是索引也被返回。
  • 我在问,因为在回发时下拉列表被重新填充了很多次,因此您会看到第一个条目总是被选中。
  • @RickS 好点——我意识到我确实在 Page_Load() 中重新填充了我的下拉列表。一切都以相同的顺序使用相同的索引重新初始化。那么不会还是选择合适的索引吗?

标签: c# asp.net dropdown


【解决方案1】:

当 DropDownList 的多个项目具有相同的值时,选择其中任何一个都将与选择具有该值的第一个项目一样。您应该修改重复的值以使每个值都唯一。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多