【发布时间】:2015-11-30 10:41:36
【问题描述】:
您好 Stack Overflow 社区
我有一个关于 ASP DropDownList 的问题,当我在 C# 代码中请求 SelectedItem.Text 字符串时,它似乎没有产生正确的选定输出。
以下是我的 DropDownList 的 ASP 代码:
<asp:DropDownList ID="ddlRecalllayaway" AccessKey="z"
runat="server" AutoPostBack="True" Height="20px"
Width="130px"></asp:DropDownList>
这是我的 C# 代码的一部分,它成功触发
SelectedIndexChanged 事件:public void ddlRecalllayaway_SelectedIndexChanged(object sender, System.EventArgs e) {
String selected = ddlRecalllayaway.SelectedItem.Text;
// 我想对已选择的字符串做的事情
}
当我在浏览器中使用 DropDownList 并选择顶部以外的项目时,事件成功触发,但是我添加了一个断点并将鼠标悬停在 selected变量发现它说的是我的DropDownList 中的顶部项目,而不是我选择的项目。
感谢任何有用的建议。谢谢!
编辑:
我的问题与“可能重复”不同,因为接受的答案是指 AutoPostBack 属性设置为 true。但是,在我的中,我已经将其设置为 true 但它不起作用。
【问题讨论】:
-
如何将事件处理程序绑定到控件?您在控件上设置了
AutoPostBack属性,但没有设置OnSelectedIndexChanged。 -
如果已更改所选索引,则只会触发事件。您需要确保您选择的是索引,而不仅仅是更改显示的文本。默认情况下,列表中的第一项将被选中(在索引 0 处),这解释了为什么再次选择它不会更改索引或触发事件....
-
我刚刚在 ASP 代码中添加了
OnSelectedIndexChanged="ddlRecalllayaway_SelectedIndexChanged"。这仍然不起作用。该事件触发得非常好,但它只是指已选择的任何项目。
标签: c# asp.net drop-down-menu