【发布时间】: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() 中重新填充了我的下拉列表。一切都以相同的顺序使用相同的索引重新初始化。那么不会还是选择合适的索引吗?