我的网页中有一个DropDownList对象。当我点击它并选择一个不同的值时,即使我有一个连接到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.
如果有人可以提供帮助,那就太棒了。
答案 0 :(得分:369)
将DropDownList AutoPostBack
属性设置为true。
例如:
<asp:DropDownList ID="logList" runat="server" AutoPostBack="True"
onselectedindexchanged="itemSelected">
</asp:DropDownList>
答案 1 :(得分:76)
尝试在DropDownList上设置AutoPostBack="True"
。
答案 2 :(得分:41)
我知道它的帖子比较老了,但我仍想在上面的答案中添加一些内容。
在某些情况下,下拉列表中多个项目的“值”重复/相同。因此,请确保列表项中没有重复值以触发此“ onselectedindexchanged ”事件
答案 3 :(得分:12)
添加媒体资源ViewStateMode="Enabled"
和EnableViewState="true"
Drop DropDownList中的AutoPostBack="true"
答案 4 :(得分:5)
还要确保页面有效。 您可以在浏览器开发人员工具(F12)中查看此内容
在“控制台”选项卡中,选择正确的目标/帧并检查[Page_IsValid]属性
如果页面无效,表单将不会提交,因此不会触发该事件。
答案 5 :(得分:2)
对我来说,答案是aspx页面属性,我添加了Async =&#34; true&#34;页面属性,这解决了我的问题。
<%@ 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>
答案 6 :(得分:1)
而不是您编写的代码,您可以直接在下拉列表控件的SelectedIndexChanged事件中编写代码。
protected void ddlleavetype_SelectedIndexChanged(object sender, EventArgs e)
{
***************
***********
****
}