how to populate 2nd dropdownlist on first dropdown selectedindexchange using data base please any help or code
Thanks in advance, in my code after postback the previus vlaus added in new selected region;
protected void Page_Load(object sender, EventArgs e){
if (!IsPostBack){
ddlPickUp.Enabled = false;ddlDropOf.Enabled =
false; string connString = ConfigurationManager.ConnectionStrings["AUTODIRECT"].ConnectionString; OleDbConnection conn = new OleDbConnection(connString);conn.Open();
OleDbCommand objcomand = new OleDbCommand("select * from Location", conn); OleDbDataReader rd = objcomand.ExecuteReader(); while (rd.Read() == true){
dlRegion.DataSource = rd;
dlRegion.DataValueField = "id";dlRegion.DataTextField =
"pickup_location";dlRegion.DataBind();
}
conn.Close();
}
}
..............................................................................................protected
void dlRegion_SelectedIndexChanged(object sender, EventArgs e){
if (dlRegion.SelectedIndex != 0){ ddlPickUp.Enabled =
true; string connString1 = ConfigurationManager.ConnectionStrings["AUTODIRECT"].ConnectionString; OleDbConnection conn1 = new OleDbConnection(connString1);conn1.Open();
OleDbCommand objcomand1 = new OleDbCommand("select * from Place", conn1); OleDbDataReader rd1 = objcomand1.ExecuteReader(); while (rd1.Read() == true){
ddlPickUp.DataSource = rd1;
ddlPickUp.DataValueField = "id";ddlPickUp.DataTextField =
"Area";ddlPickUp.DataBind();
}
conn1.Close();
Qaiser MehmoodPosted Feb 26, 2009, 2:14 AM
vivek kulkarniPosted Feb 25, 2009, 11:23 AM
Hi,
use ddlPickUp.items.clear();
Thank you,
Vivek Kulkarni
MCP MCAD.Net
Qaiser MehmoodPosted Feb 25, 2009, 11:10 AM
Please check it------------------------------------
string
connString = ConfigurationManager.ConnectionStrings["AUTODIRECT"].ConnectionString; OleDbConnection conn = new OleDbConnection(connString);conn.Open();
OleDbCommand objcomand = new OleDbCommand("select * from Location", conn); OleDbDataReader rd = objcomand.ExecuteReader(); while (rd.Read() == true){
ddlRegion.DataSource = rd;
ddlRegion.DataValueField =
"id";ddlRegion.DataTextField =
"pickup_location";ddlRegion.DataBind();
}
conn.Close();
//-------------------------------------
protected
void ddlRegion_SelectedIndexChanged(object sender, EventArgs e){
if (ddlRegion.SelectedIndex != 0)
{ ddlPickUp.Enabled =
true;ddlDropOf.Enabled =
true; string connString1 = ConfigurationManager.ConnectionStrings["AUTODIRECT"].ConnectionString; OleDbConnection conn1 = new OleDbConnection(connString1);conn1.Open();
ddlPickUp.ClearSelection();
string s = ddlRegion.SelectedValue; OleDbCommand objcomand1 = new OleDbCommand("select * from Place where City_id="+s , conn1); OleDbDataReader rd1 = objcomand1.ExecuteReader();ddlPickUp.DataSource = rd1;
ddlPickUp.DataTextField =
"Area";ddlPickUp.DataBind();
conn1.Close();
}
vivek kulkarniPosted Feb 25, 2009, 10:25 AM
Hi,
Please clear the list before adding.
call the clear method before assignment.
Thank you,
Vivek Kulkarni
MCP MCAD.Net
Qaiser MehmoodPosted Feb 25, 2009, 9:04 AM
vivek kulkarniPosted Feb 25, 2009, 6:33 AM
Hi,
You are almost there in the code with little modifications.
1. You should filter out the places using a where clause in the sql based on the selected region which you will get in the
SelectedValue property.
2. Second once you have get the results in the result set. you dont have to use a while loop to fill each record when you assign the datasource and call the databind, the databind will internally loop through and fill all the records for you.
I hope that should solve the problem.
You can also try using Ajax. Here is a link.
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/CascadingDropDown/CascadingDropDown.aspx
Please let me know if you require any thing else.
Thank you and have a great day!
Vivek Kulkarni
MCP MCAD.Net.