DropDownList's SelectedIndexChanged event not firing

asp.netDrop Down-MenuSelectedindexchanged

asp.net Problem Overview


I have a DropDownList object in my web page. When I click on it and select a different value, nothing happens, even though I have a function wired up to the SelectedIndexChanged event.

First, the actual object's HTML code:

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

And this is that function, 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>");
		}
	}
}

None of the Responses appear, and that portion of JavaScript is never run. I've tried this on the latest 3.6 version of Firefox, as well as Internet Explorer 8. This is being served from a Windows Server 2003 R2 machine, running ASP.NET with the .NET Framework version 4.

asp.net Solutions


Solution 1 - asp.net

Set DropDownList AutoPostBack property to true.

Eg:

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

Solution 2 - asp.net

try setting AutoPostBack="True" on the DropDownList.

Solution 3 - asp.net

I know its bit older post, but still i would like to add up something to the answers above.

There might be some situation where in, the "value" of more than one items in the dropdown list is duplicated/same. So, make sure that you have no repeated values in the list items to trigger this "onselectedindexchanged" event

Solution 4 - asp.net

Add property ViewStateMode="Enabled" and EnableViewState="true" And AutoPostBack="true" in drop DropDownList

Solution 5 - asp.net

Also make sure the page is valid. You can check this in the browsers developer tools (F12)

In the Console tab select the correct Target/Frame and check for the [Page_IsValid] property

If the page is not valid the form will not submit and therefore not fire the event.

Solution 6 - asp.net

For me answer was aspx page attribute, i added Async="true" to page attributes and this solved my problem.

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

This is the structure of my update panel

<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>

Solution 7 - asp.net

Instead of what you have written, you can write it directly in the SelectedIndexChanged event of the dropdownlist control, e.g.

protected void ddlleavetype_SelectedIndexChanged(object sender, EventArgs e)
{
 //code goes here
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiongcodeView Question on Stackoverflow
Solution 1 - asp.netVyasdev MeledathView Answer on Stackoverflow
Solution 2 - asp.netThe Scrum MeisterView Answer on Stackoverflow
Solution 3 - asp.net4u.AnsView Answer on Stackoverflow
Solution 4 - asp.netDilip Kr SinghView Answer on Stackoverflow
Solution 5 - asp.netHerbalMartView Answer on Stackoverflow
Solution 6 - asp.netJustin FView Answer on Stackoverflow
Solution 7 - asp.netuser2541273View Answer on Stackoverflow