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>