I am using 2 dropdown lists in parent child relationship and are present inside one update panel but when even i select some data from parent dropdown list, insted of filling the second dropdown list it just creates duplicate dropdown lists for both the dopdown list making 4 dropdownlists on the page.
My code is
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Always">
<ContentTemplate>
<td valign="top">
<asp:DropDownList ID="ddlProject" runat="server" Width="105" AutoPostBack="true"
OnSelectedIndexChanged="ddlProject_SelectedIndexChanged">
</asp:DropDownList>
</td>
<td valign="top">
<asp:DropDownList ID="ddlSubProject" runat="server" Width="105" AutoPostBack="true"
OnSelectedIndexChanged="ddlSubProject_SelectedIndexChanged">
</asp:DropDownList>
</td>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlProject" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
Code is as folows
protected void ddlProject_SelectedIndexChanged(object sender, EventArgs e)
{
ClsCommon.FillDropDown(ddlSubProject, BALProjectUseCases.GetAllSubProjectByProject(Convert.ToInt32(ddlProject.SelectedValue)), DropDownSelectText, "FieldName", "id");
}
protected void ddlSubProject_SelectedIndexChanged(object sender, EventArgs e)
{
ClsCommon.FillDropDown(ddlUseCase, BALProjectUseCases.GetAllUseCasesByProject(Convert.ToInt32(ddlSubProject.SelectedValue)), DropDownSelectText, "FieldName", "id");
}
public static void FillDropDown<T>(DropDownList ddlList, List<T> oList, string strSelectText, string strDataTextField, string strDataValueField) where T : class
{
try
{
if (oList.Count > 0)
{
ddlList.Items.Clear();
ddlList.DataSource = oList;
ddlList.DataTextField = strDataTextField;
ddlList.DataValueField = strDataValueField;
ddlList.DataBind();
if (strSelectText != "")
ddlList.Items.Insert(0, new ListItem(strSelectText, "0"));
}
else
{
ddlList.Items.Clear();
ddlList.Items.Insert(0, new ListItem(strSelectText, "0"));
}
}