I have a repeater control with a DropDownList in the header template. I am trying to make a database call and sort the results by the selectedIndex property of the drop down. The SelectedIndexChanged event is not getting fired, feel like I've tried everything.
Repeater Code
************************************************** ************************************************** ******************************
<asp:Repeater ID="rptRecords" OnItemCreated="rptRecords_OnItemCreated" runat="server">
<HeaderTemplate>
<table class="bordered" Width="100%" align="center" cellpadding="2">
<tr class="header_row">
<th class="h_12" colspan="19" align="left">
<asp:Label ID="lblTitle" Text="" CssClass="h_12" runat="server" />
</th>
</tr>
<tr>
<td colspan="19" align="right">
Sort by:
<asp:DropDownList
OnSelectedIndexChanged="ddlSort_SelectIndexChanged "
ID="ddlSort"
AutoPostBack="true"
runat="server">
<asp:ListItem Text="Project ID" Value="M.OBID" />
<asp:ListItem Text="Project Type" Value="ProjectType" />
<asp:ListItem Text="TPM Team" Value="TPMTeam" />
<asp:ListItem Text="InfrastructureType" Value="InfrastructureType" />
<asp:ListItem Text="Priority" Value="Priority" />
<asp:ListItem Text="Status" Value="Status" />
<asp:ListItem Text="Phase" Value="M.DMAIC" />
<asp:ListItem Text="Disposition" Value="Disposition" />
</asp:DropDownList>
</td>
</tr>
</HeaderTemplate>
Non working code
************************************************** ************************************************** *****************************
protected void rptRecords_OnItemCreated(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
DropDownList ddlSort = (DropDownList)e.Item.FindControl("ddlSort");
ddlSort.AutoPostBack = true;
ddlSort.SelectedIndexChanged += new EventHandler(dropDownList_SelectedIndexChanged);
}
}
protected void dropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
RepeaterItem rptItem = (RepeaterItem)(((Control)sender).NamingContainer);
DropDownList ddlSort = (DropDownList)rptItem.FindControl("ddlSort");
m_SortExpression = ddlSort.SelectedValue;
LoadData();
}