I have two drop-down list in which one is "State" and another is "Cluster". Both of these drop-down list are relational. For example if I select Kerala in State then Cluster will populate its important cities and dist. like Pathnamthitta, calicut, palakad etc.
So, what I want is, I want to give an option "Select All" in both State and Cluster ddl.
I've gone through:
How to select all records in a DropDownList
http://www.w3schools.com/aspnet/control_dropdownlist.asp
http://forums.asp.net/t/1221977.aspx?Adding+a+Select+all+option+to+a+drop+down+list
But none of them worked for me. I can able to have select all in state but not getting cluster values populated on the other ddl.
This is my code for "State" ddl:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet3TableAdapters.tbl_energy_reportTableAdapter state;
state = new DataSet3TableAdapters.tbl_energy_reportTableAdapter();
DataTable dt = new DataTable();
dt = state.GetDataByStateInnerJoin();
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "state1";
DropDownList1.DataValueField = "state1";
DropDownList1.DataBind();
DropDownList1.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select State--", "0"));
DropDownList2.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select Cluster--", "0"));
}
}
And This code is for "Cluster"
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet3TableAdapters.tbl_energy_reportTableAdapter state;
state = new DataSet3TableAdapters.tbl_energy_reportTableAdapter();
DataTable dt = new DataTable();
dt = state.GetDataByClusterInnerJoin(DropDownList1.SelectedValue);
DropDownList2.DataSource = dt;
DropDownList2.DataTextField = "cluster";
DropDownList2.DataValueField = "cluster";
DropDownList2.DataBind();
}
This is the query for State ddl:
SELECT DISTINCT tbl_site_details.state1
FROM tbl_site_details INNER JOIN
tbl_energy_report ON tbl_energy_report.Site_ID = tbl_site_details.site_id
And this the query for Cluster ddl:
SELECT tbl_site_details.cluster
FROM tbl_site_details INNER JOIN
tbl_energy_report ON tbl_energy_report.Site_ID = tbl_site_details.site_id
WHERE (tbl_site_details.state1 = @state1)
That's because rebind the ddl2 with dt on ddl1_selectedindexchanged method.
Comment the 'DropDownList2.Items.Insert' on your page_load
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet3TableAdapters.tbl_energy_reportTableAdapter state;
state = new DataSet3TableAdapters.tbl_energy_reportTableAdapter();
DataTable dt = new DataTable();
dt = state.GetDataByStateInnerJoin();
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "state1";
DropDownList1.DataValueField = "state1";
DropDownList1.DataBind();
DropDownList1.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select State--", "0"));
//COMMENT THIS LINE
//DropDownList2.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select Cluster--", "0"));
}
}
and move it to your dropdownlist1_selectedindexchanged event.
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet3TableAdapters.tbl_energy_reportTableAdapter state;
state = new DataSet3TableAdapters.tbl_energy_reportTableAdapter();
DataTable dt = new DataTable();
dt = state.GetDataByClusterInnerJoin(DropDownList1.SelectedValue);
DropDownList2.DataSource = dt;
DropDownList2.DataTextField = "cluster";
DropDownList2.DataValueField = "cluster";
DropDownList2.DataBind();
//put it here
DropDownList2.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select Cluster--", "0"));
}