三级联动下拉菜单的方法
写个CS,
AJAX也可以using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; /// <summary> /// provcityservstat 的摘要说明 /// 这个类主要是用来当省/城市/服务站都是下拉进判断,省和城市教师都是autopostback /// </summary> public class provcityservstat { public DropDownList prov; public DropDownList city; public DropDownList servstat; public string servstat_id; public provcityservstat() { // // TODO: 在此处添加构造函数逻辑 // } //绑定省的下拉 public void dataBindToProv() { SqlConnection con = db.createSqlConneciton(); con.Open(); SqlCommand cmd = new SqlCommand("select * from t_prov", con); SqlDataReader sdr = cmd.ExecuteReader(); this.prov.DataSource = sdr; this.prov.DataTextField = "prov_name"; this.prov.DataValueField = "prov_id"; this.prov.DataBind(); sdr.Close(); con.Close(); }//绑定城市下拉
public void dataBindToCity() { SqlConnection con = db.createSqlConneciton(); con.Open(); SqlCommand cmd = new SqlCommand("select * from t_city where city_provid = " + this.prov.SelectedValue, con); SqlDataReader sdr = cmd.ExecuteReader(); this.city.DataSource = sdr; this.city.DataTextField = "city_name"; this.city.DataValueField = "city_id"; this.city.DataBind(); sdr.Close(); con.Close(); }//绑定服务站
public void dataBindToServstat() { if (this.city.SelectedValue != "") { SqlConnection con = db.createSqlConneciton(); con.Open(); SqlCommand cmd = new SqlCommand("select * from t_servstat where servstat_cityid = " + this.city.SelectedValue, con); SqlDataReader sdr = cmd.ExecuteReader(); this.servstat.DataSource = sdr; this.servstat.DataTextField = "servstat_name"; this.servstat.DataValueField = "servstat_id"; this.servstat.DataBind(); sdr.Close(); con.Close(); } else { this.servstat.Items.Clear(); } }//一般用于新增时省,城市,服务站的下拉
public void dataBindAdd() { dataBindToProv(); dataBindToCity(); dataBindToServstat(); }//当省的下拉发生变化时
public void databinddropdownprov() { dataBindToCity(); dataBindToServstat(); }//下面开始是用于修改的,根据已知的servstat_id得出是哪个服务站,哪个城市,哪个省
public void dataBindMod() { SqlConnection con = db.createSqlConneciton(); con.Open(); SqlCommand cmd = new SqlCommand("select * from t_servstat,t_city,t_prov where prov_id = city_provid and city_id = servstat_cityid and servstat_id = " + servstat_id, con); SqlDataReader sdr = cmd.ExecuteReader(); if (sdr.Read()) { dataBindModProv(sdr["prov_id"].ToString()); dataBindModCity(sdr["prov_id"].ToString(), sdr["city_id"].ToString()); dataBindModServstat(sdr["city_id"].ToString(), sdr["servstat_id"].ToString()); } sdr.Close(); con.Close(); }//绑定到修改时的省
public void dataBindModProv(string prov_id) { SqlConnection con = db.createSqlConneciton(); con.Open(); SqlCommand cmd = new SqlCommand("select * from t_prov", con); SqlDataReader sdr = cmd.ExecuteReader(); this.prov.Items.Clear(); int i = 0; while (sdr.Read()) { this.prov.Items.Insert(i, new ListItem(sdr["prov_name"].ToString(), sdr["prov_id"].ToString())); if (prov_id == sdr["prov_id"].ToString()) { this.prov.Items[i].Selected = true; } i++; } sdr.Close(); con.Close(); }//绑定到修改时的城市
public void dataBindModCity(string prov_id, string city_id) { SqlConnection con = db.createSqlConneciton(); con.Open(); SqlCommand cmd = new SqlCommand("select * from t_city where city_provid = " + prov_id, con); SqlDataReader sdr = cmd.ExecuteReader(); this.city.Items.Clear(); int i = 0; while (sdr.Read()) { this.city.Items.Insert(i, new ListItem(sdr["city_name"].ToString(), sdr["city_id"].ToString())); if (city_id == sdr["city_id"].ToString()) { this.city.Items[i].Selected = true; } i++; } sdr.Close(); con.Close(); }//绑定到修改时的服务站
public void dataBindModServstat(string city_id, string servstat_id) { SqlConnection con = db.createSqlConneciton(); con.Open(); SqlCommand cmd = new SqlCommand("select * from t_servstat where servstat_cityid = " + city_id, con); SqlDataReader sdr = cmd.ExecuteReader(); this.servstat.Items.Clear(); int i = 0; while (sdr.Read()) { this.servstat.Items.Insert(i, new ListItem(sdr["servstat_name"].ToString(), sdr["servstat_id"].ToString())); if (servstat_id == sdr["servstat_id"].ToString()) { this.servstat.Items[i].Selected = true; } i++; } sdr.Close(); con.Close(); } }参考一下我的,我这个是三级的
注意,下拉的autopostback要先上