DropDownList的SelectedIndexChanged事件未触发

时间:2011-02-05 06:01:14

标签: asp.net drop-down-menu selectedindexchanged

我的网页中有一个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.

如果有人可以提供帮助,那就太棒了。

7 个答案:

答案 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)
{
***************
***********
****
}