Hi Karthick34,
I have created one sample that full-fill your requirement.
HTML
<table>
<tr>
<td>
DropDownList1
</td>
<td>
<asp:DropDownList runat="server" ID="ddl1" AutoPostBack="true" OnSelectedIndexChanged="ddl1SelectionChanged">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
DropDownList2
</td>
<td>
<asp:DropDownList runat="server" ID="ddl2" AutoPostBack="true" OnSelectedIndexChanged="ddl2SelectionChanged">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
DropDownList3
</td>
<td>
<asp:DropDownList runat="server" ID="ddl3" AutoPostBack="true" OnSelectedIndexChanged="ddl3SelectionChanged">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
DropDownList4
</td>
<td>
<asp:DropDownList runat="server" ID="ddl4">
</asp:DropDownList>
</td>
</tr>
</table>
Code
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = GetCountries();
ddl1.DataSource = dt;
ddl1.DataTextField = "Name";
ddl1.DataValueField = "Id";
ddl1.DataBind();
}
}
private DataTable GetCountries()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2] {
new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)) });
dt.Rows.Add(1, "India");
dt.Rows.Add(2, "Pakistan");
dt.Rows.Add(3, "Srilanka");
dt.Rows.Add(4, "Bangladesh");
dt.Rows.Add(5, "Australia");
dt.Rows.Add(6, "England");
dt.Rows.Add(7, "South Africa");
return dt;
}
protected void ddl1SelectionChanged(object sender, EventArgs e)
{
DataTable dt = GetCountries();
var query = from dd1 in dt.AsEnumerable()
where dd1.Field<string>("Name") != ddl1.SelectedItem.Text
select new { ID = dd1.Field<int>("Id"), Name = dd1.Field<string>("Name") };
ddl2.DataSource = query.ToList();
ddl2.DataTextField = "Name";
ddl2.DataValueField = "ID";
ddl2.DataBind();
}
protected void ddl2SelectionChanged(object sender, EventArgs e)
{
DataTable dt = GetCountries();
var query = from dd2 in dt.AsEnumerable()
where dd2.Field<string>("Name") != ddl1.SelectedItem.Text
&& dd2.Field<string>("Name") != ddl2.SelectedItem.Text
select new { ID = dd2.Field<int>("Id"), Name = dd2.Field<string>("Name") };
ddl3.DataSource = query.ToList();
ddl3.DataTextField = "Name";
ddl3.DataValueField = "ID";
ddl3.DataBind();
}
protected void ddl3SelectionChanged(object sender, EventArgs e)
{
DataTable dt = GetCountries();
var query = from dd3 in dt.AsEnumerable()
where dd3.Field<string>("Name") != ddl1.SelectedItem.Text
&& dd3.Field<string>("Name") != ddl2.SelectedItem.Text
&& dd3.Field<string>("Name") != ddl3.SelectedItem.Text
select new { ID = dd3.Field<int>("Id"), Name = dd3.Field<string>("Name") };
ddl4.DataSource = query.ToList();
ddl4.DataTextField = "Name";
ddl4.DataValueField = "ID";
ddl4.DataBind();
}
Screenshot
