自己解决了.不过不知道有没有更好的方法. protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ProvinceFill(); CityFill(); CountyFill(); } } ///
/// 用数组存储绑定DataView数据源返回所选字段唯一值 /// ///
DataView视图 ///
数组参数 ///
筛选字段 ///
返回column_name唯一值
private ArrayList GetDistinctData(ref DataView dv, ref ArrayList al, string column_name) { bool existed = false; foreach (DataRowView dr in dv) { existed = false; for (int i = 0; i < al.Count; i++) { if (dr[column_name].ToString() == al[i].ToString()) { existed = true; } } if (existed == false) { al.Add(dr[column_name]); } } return al; } ///
///绑定省市数据到控件 /// protected void ProvinceFill() { //清空省市选项 ddlProvince.Items.Clear(); DataSet ds = new DataSet( "Cities "); ds.Clear(); ds.ReadXml(Server.MapPath( "..//App_Data//Citys.xml ")); DataTable dt = ds.Tables[0]; DataView pdv = new DataView(dt); ArrayList pal = new ArrayList(); GetDistinctData(ref pdv, ref pal, "Province "); ddlProvince.DataSource = pal; ddlProvince.DataBind(); } ///
/// 绑定所选省市下的城市或地区到控件 /// protected void CityFill() {//清空城市地区选项 ddlCity.Items.Clear(); DataSet ds = new DataSet( "Cities "); ds.Clear(); ds.ReadXml(Server.MapPath( "..//App_Data//Citys.xml ")); DataTable dt = ds.Tables[0]; DataView cdv = new DataView(dt); cdv.RowFilter = "Province= ' " + ddlProvince.SelectedItem.Text + " ' "; ArrayList cal = new ArrayList(); GetDistinctData(ref cdv, ref cal, "City "); ddlCity.DataSource = cal; ddlCity.DataBind(); } ///
/// 绑定数据到所选城市或地区管辖下的县市到控件 /// protected void CountyFill() { //清空市县选项 ddlCounty.Items.Clear(); DataSet ds = new DataSet( "Cities "); ds.Clear(); ds.ReadXml(Server.MapPath( "..//App_Data//Citys.xml ")); DataTable dt = ds.Tables[0]; DataView ctdv = new DataView(dt); ctdv.RowFilter = "Province= ' " + ddlProvince.SelectedItem.Text + " ' and City= ' " + ddlCity.SelectedItem.Text + " ' "; ArrayList ctal = new ArrayList(); GetDistinctData(ref ctdv, ref ctal, "County "); ddlCounty.DataSource = ctal; ddlCounty.DataBind(); } protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e) { CityFill(); CountyFill(); } protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e) { CountyFill(); }
读取部分xml
最新推荐文章于 2024-07-10 06:14:25 发布