DropDownList的SelectedIndexChanged事件不会触发

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

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

 <asp:DropDownList ID="logList" runat="server" onselectedindexchanged="itemSelected"> </asp:DropDownList> 

这就是这个函数, 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>"); } } } 

没有一个响应出现,并且这部分JavaScript从未运行。 我已经在最新的3.6版本的Firefox以及Internet Explorer 8上尝试了这一点。这是从Windows Server 2003 R2机器上运行,运行ASP.Net和.NET Framework版本4。

如果任何人都可以帮助,那会很好。

将DropDownList的AutoPostBack属性设置为true。

例如:

 <asp:DropDownList ID="logList" runat="server" AutoPostBack="True" onselectedindexchanged="itemSelected"> </asp:DropDownList> 

尝试在DropDownList上设置AutoPostBack="True"

我知道它比较老的post,但是我仍然想要在上面的答案中加上一些东西。

在某些情况下,下拉列表中多个项目的“ 价值 ”是重复/相同的。 因此,确保在列表项中没有重复的值来触发这个“ onselectedindexchanged ”事件

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

欲了解更多详情请点击这里

还要确保页面是有效的。 您可以在浏览器开发工具(F12)

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

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

insted你写的代码你可以直接写在下拉列表控件的SelectedIndexChanged事件

 protected void ddlleavetype_SelectedIndexChanged(object sender, EventArgs e) { *************** *********** **** } 

对我来说,答案是aspx页面属性,我添加Async =“true”页面属性,这解决了我的问题。

 <%@ Page Language="C#" MasterPageFile="~/MasterPage/Reports.Master"..... AutoEventWireup="true" Async="true" %> 

这是我的更新面板的结构

 <div> <asp:UpdatePanel ID="updt" runat="server"> <ContentTemplate> <asp:DropDownList ID="id" runat="server" AutoPostBack="true" onselectedindexchanged="your server side function" /> </ContentTemplate> </asp:UpdatePanel> </div>