DropDownList的SelectedIndexChanged事件未触发

TGP*_*994 187 asp.net selectedindexchanged drop-down-menu

我的网页中有一个DropDownList对象.当我点击它并选择一个不同的值时,即使我有一个功能连接到SelectedIndexChanged事件,也没有任何反应.我会尝试尽可能有序地发布我的代码:

首先,实际对象的HTML代码:

<asp:DropDownList ID="logList" runat="server" 
       onselectedindexchanged="itemSelected">
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

这就是这个功能,itemSelected:

protected void itemSelected(object sender, EventArgs e)
{
    Response.Write("Getting clicked; " + sender.GetType().ToString());
    FileInfo selectedfile;
    Response.Write("<script>alert('Hello')</script>");
    foreach (FileInfo file in logs)
    {
        if (file.Name == logList.Items[logList.SelectedIndex].Text)
        {
            Response.Write("<script>alert('Hello')</script>");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

没有出现任何响应,并且JavaScript的那部分永远不会运行.我在最新的3.6版本的Firefox以及Internet Explorer 8上试过这个.这是从Windows Server 2003 R2机器上运行的,运行ASP.Net和.NET Framework版本4.

如果有人可以提供帮助,那就太好了.

Vya*_*Dev 382

将DropDownList AutoPostBack属性设置为true.

例如:

<asp:DropDownList ID="logList" runat="server" AutoPostBack="True" 
        onselectedindexchanged="itemSelected">
    </asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

  • @MuhamedShafeeq - 如果你在Page_Load方法中填充列表,请确保将代码包装在if(!IsPostback)中.这将阻止它重新加载列表并将其设置回第一个项目. (18认同)
  • 好吧,这似乎已经解决了,谢谢.你能解释一下原因吗? (3认同)
  • @ TGP1994:AutoPostBack属性用于设置或返回是否发生自动回发 (2认同)
  • 当我选择下拉列表时,它会转到列表的第一个值 (2认同)

The*_*ter 76

尝试设置AutoPostBack="True"DropDownList.


4u.*_*Ans 43

我知道它的帖子比较老了,但我仍想在上面的答案中添加一些内容.

在某些情况下,下拉列表中多个项目的" "重复/相同.因此,请确保列表项中没有重复值以触发此" onselectedindexchanged "事件


Dil*_*ngh 13

在DropDownList中添加属性ViewStateMode="Enabled"EnableViewState="true" AndAutoPostBack="true"


Her*_*art 5

还要确保页面有效。您可以在浏览器开发人员工具(F12)中进行检查

在控制台选项卡中,选择正确的目标/框架并检查[Page_IsValid]属性

如果页面无效,则表单不会提交,因此不会触发该事件。