I have a user control named “LettersDropControl“. It has a dropdown list. I am using this control in a aspx page. When I change the selected item it is not calling the ddlLetters_SelectedIndexChanged event handler? What change I need to make in order to execute the code in ddlLetters_SelectedIndexChanged event handler?
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LettersDropControl.ascx.cs" Inherits="MSAJAX1.LettersDropControl" %>
public partial class LettersDropControl : System.Web.UI.UserControl
{
private string selectedLetter;
public string SelectedLetter
{
get { return selectedLetter; }
set { selectedLetter = value; }
}
// Delegate
public delegate void OnButtonClick(string strValue);
// Event
public event OnButtonClick btnHandler;
protected void ddlLetters_SelectedIndexChanged(object sender, EventArgs e)
{
throw new Exception("TEST");
SelectedLetter = ddlLetters.SelectedItem.Value;
// Raise event if there is a subscription
if (btnHandler != null)
{
btnHandler(string.Empty);
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ddlLetters.Items.Add("A");
ddlLetters.Items.Add("B");
}
}
}
The aspx page is
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MSAJAX1.Default" %>
<%@ Register TagPrefix="CP" TagName="LetterCtrl" Src="LettersDropControl.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<CP:LetterCtrl id="LetterCtrl1" runat="server" />
</div>
</form>
</body>
</html>
Check in case you have added the
AutoPostBackproperty for the concerned dropdown. something like this<asp:DropDownList 1" runat="server" AutoPostBack="True">